public final class TraceClassVisitor
extends org.objectweb.asm.ClassVisitor
ClassVisitor
that prints the classes it visits with a Printer
. 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 the Hello
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"); } }
Modifier and Type | Field and Description |
---|---|
Printer |
p
The printer to convert the visited class into text.
|
Constructor and Description |
---|
TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor,
Printer printer,
java.io.PrintWriter printWriter)
Constructs a new
TraceClassVisitor . |
TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor,
java.io.PrintWriter printWriter)
Constructs a new
TraceClassVisitor . |
TraceClassVisitor(java.io.PrintWriter printWriter)
Constructs a new
TraceClassVisitor . |
Modifier and Type | Method and 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 |
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) |
public final Printer p
public TraceClassVisitor(java.io.PrintWriter printWriter)
TraceClassVisitor
.printWriter
- the print writer to be used to print the class. May be null.public TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, java.io.PrintWriter printWriter)
TraceClassVisitor
.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.public TraceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, Printer printer, java.io.PrintWriter printWriter)
TraceClassVisitor
.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.public void visit(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)
visit
in class org.objectweb.asm.ClassVisitor
public void visitSource(java.lang.String file, java.lang.String debug)
visitSource
in class org.objectweb.asm.ClassVisitor
public org.objectweb.asm.ModuleVisitor visitModule(java.lang.String name, int flags, java.lang.String version)
visitModule
in class org.objectweb.asm.ClassVisitor
public void visitNestHost(java.lang.String nestHost)
visitNestHost
in class org.objectweb.asm.ClassVisitor
public void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
visitOuterClass
in class org.objectweb.asm.ClassVisitor
public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
visitAnnotation
in class org.objectweb.asm.ClassVisitor
public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
visitTypeAnnotation
in class org.objectweb.asm.ClassVisitor
public void visitAttribute(org.objectweb.asm.Attribute attribute)
visitAttribute
in class org.objectweb.asm.ClassVisitor
public void visitNestMember(java.lang.String nestMember)
visitNestMember
in class org.objectweb.asm.ClassVisitor
public void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)
visitInnerClass
in class org.objectweb.asm.ClassVisitor
public org.objectweb.asm.FieldVisitor visitField(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)
visitField
in class org.objectweb.asm.ClassVisitor
public org.objectweb.asm.MethodVisitor visitMethod(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)
visitMethod
in class org.objectweb.asm.ClassVisitor
public void visitEnd()
visitEnd
in class org.objectweb.asm.ClassVisitor