Package org.objectweb.asm.util
Class TraceClassVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.objectweb.asm.util.TraceClassVisitor
-
public final class TraceClassVisitor extends org.objectweb.asm.ClassVisitor
AClassVisitor
that prints the classes it visits with aPrinter
. This class visitor can be used in the middle of a class visitor chain to trace the class that is visited at a given point in this chain. This may be useful for debugging purposes.When used with a
Textifier
, the trace printed when visiting theHello
class is the following:// class version 49.0 (49) // access flags 0x21 public class Hello { // compiled from: Hello.java // access flags 0x1 public <init> ()V ALOAD 0 INVOKESPECIAL java/lang/Object <init> ()V RETURN MAXSTACK = 1 MAXLOCALS = 1 // access flags 0x9 public static main ([Ljava/lang/String;)V GETSTATIC java/lang/System out Ljava/io/PrintStream; LDC "hello" INVOKEVIRTUAL java/io/PrintStream println (Ljava/lang/String;)V RETURN MAXSTACK = 2 MAXLOCALS = 1 }
where
Hello
is defined by:public class Hello { public static void main(String[] args) { System.out.println("hello"); } }
-
-
Constructor Summary
Constructors Constructor Description TraceClassVisitor(java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, Printer printer, java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
org.objectweb.asm.AnnotationVisitor
visitAnnotation(java.lang.String descriptor, boolean visible)
void
visitAttribute(org.objectweb.asm.Attribute attribute)
void
visitEnd()
org.objectweb.asm.FieldVisitor
visitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)
void
visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)
org.objectweb.asm.MethodVisitor
visitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
org.objectweb.asm.ModuleVisitor
visitModule(java.lang.String name, int flags, java.lang.String version)
void
visitNestHost(java.lang.String nestHost)
void
visitNestMember(java.lang.String nestMember)
void
visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
void
visitPermittedSubclass(java.lang.String permittedSubclass)
org.objectweb.asm.RecordComponentVisitor
visitRecordComponent(java.lang.String name, java.lang.String descriptor, java.lang.String signature)
void
visitSource(java.lang.String file, java.lang.String debug)
org.objectweb.asm.AnnotationVisitor
visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
-
-
Field Detail
-
p
public final Printer p
The printer to convert the visited class into text.
-
-
Constructor Detail
-
TraceClassVisitor
public TraceClassVisitor(java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.- Parameters:
printWriter
- the print writer to be used to print the class. May be null.
-
TraceClassVisitor
public TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.- Parameters:
classVisitor
- the class visitor to which to delegate calls. May be null.printWriter
- the print writer to be used to print the class. May be null.
-
TraceClassVisitor
public TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, Printer printer, java.io.PrintWriter printWriter)
Constructs a newTraceClassVisitor
.- Parameters:
classVisitor
- the class visitor to which to delegate calls. May be null.printer
- the printer to convert the visited class into text.printWriter
- the print writer to be used to print the class. May be null.
-
-
Method Detail
-
visit
public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
- Overrides:
visit
in classorg.objectweb.asm.ClassVisitor
-
visitSource
public void visitSource(java.lang.String file, java.lang.String debug)
- Overrides:
visitSource
in classorg.objectweb.asm.ClassVisitor
-
visitModule
public org.objectweb.asm.ModuleVisitor visitModule(java.lang.String name, int flags, java.lang.String version)
- Overrides:
visitModule
in classorg.objectweb.asm.ClassVisitor
-
visitNestHost
public void visitNestHost(java.lang.String nestHost)
- Overrides:
visitNestHost
in classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
- Overrides:
visitOuterClass
in classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
- Overrides:
visitAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
- Overrides:
visitTypeAnnotation
in classorg.objectweb.asm.ClassVisitor
-
visitAttribute
public void visitAttribute(org.objectweb.asm.Attribute attribute)
- Overrides:
visitAttribute
in classorg.objectweb.asm.ClassVisitor
-
visitNestMember
public void visitNestMember(java.lang.String nestMember)
- Overrides:
visitNestMember
in classorg.objectweb.asm.ClassVisitor
-
visitPermittedSubclass
public void visitPermittedSubclass(java.lang.String permittedSubclass)
- Overrides:
visitPermittedSubclass
in classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)
- Overrides:
visitInnerClass
in classorg.objectweb.asm.ClassVisitor
-
visitRecordComponent
public org.objectweb.asm.RecordComponentVisitor visitRecordComponent(java.lang.String name, java.lang.String descriptor, java.lang.String signature)
- Overrides:
visitRecordComponent
in classorg.objectweb.asm.ClassVisitor
-
visitField
public org.objectweb.asm.FieldVisitor visitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)
- Overrides:
visitField
in classorg.objectweb.asm.ClassVisitor
-
visitMethod
public org.objectweb.asm.MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
- Overrides:
visitMethod
in classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()
- Overrides:
visitEnd
in classorg.objectweb.asm.ClassVisitor
-
-