org.objectweb.asm.util
public class TraceClassVisitor extends TraceAbstractVisitor implements ClassVisitor
main
method) to disassemble a class. It can also be used in the middle of class
visitor chain to trace the class that is visited at a given point in this
chain. This may be uselful for debugging purposes. The trace printed when visiting the Hello class is the following:
// class version 49.0 (49)
// access flags 33
public class Hello {
// compiled from: Hello.java
// access flags 1
public <init> ()V
ALOAD 0
INVOKESPECIAL java/lang/Object <init> ()V
RETURN
MAXSTACK = 1
MAXLOCALS = 1
// access flags 9
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");
}
}
| Field Summary | |
|---|---|
| protected ClassVisitor | cv
The ClassVisitor to which this visitor delegates calls. |
| protected PrintWriter | pw
The print writer to be used to print the class. |
| Constructor Summary | |
|---|---|
| TraceClassVisitor(PrintWriter pw)
Constructs a new TraceClassVisitor.
| |
| TraceClassVisitor(ClassVisitor cv, PrintWriter pw)
Constructs a new TraceClassVisitor.
| |
| Method Summary | |
|---|---|
| protected TraceFieldVisitor | createTraceFieldVisitor() |
| protected TraceMethodVisitor | createTraceMethodVisitor() |
| static void | main(String[] args)
Prints a disassembled view of the given class to the standard output. |
| void | visit(int version, int access, String name, String signature, String superName, String[] interfaces) |
| AnnotationVisitor | visitAnnotation(String desc, boolean visible) |
| void | visitAttribute(Attribute attr) |
| void | visitEnd() |
| FieldVisitor | visitField(int access, String name, String desc, String signature, Object value) |
| void | visitInnerClass(String name, String outerName, String innerName, int access) |
| MethodVisitor | visitMethod(int access, String name, String desc, String signature, String[] exceptions) |
| void | visitOuterClass(String owner, String name, String desc) |
| void | visitSource(String file, String debug) |
Parameters: pw the print writer to be used to print the class.
Parameters: cv the ClassVisitor to which this visitor delegates calls. May be null. pw the print writer to be used to print the class.
Usage: TraceClassVisitor [-debug] <fully qualified class name or class file name >
Parameters: args the command line arguments.
Throws: Exception if the class cannot be found, or if an IO exception occurs.