org.objectweb.asm.util
Class TraceClassVisitor
- ClassVisitor
public class TraceClassVisitor
A
PrintClassVisitor
that prints a disassembled
view of the classes it visits. This class visitor can be used alone (see the
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:
// compiled from Hello.java
public class Hello {
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
public <init> ()V
ALOAD 0
INVOKESPECIAL java/lang/Object <init> ()V
RETURN
MAXSTACK = 1
MAXLOCALS = 1
}
where
Hello is defined by:
public class Hello {
public static void main (String[] args) {
System.out.println("hello");
}
}
- Eric Bruneton, Eugene Kuleshov
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 superName, String[] interfaces, String sourceFile)
|
void | visitAttribute(Attribute attr)
|
void | visitEnd()
|
void | visitField(int access, String name, String desc, Object value, Attribute attrs)
|
void | visitInnerClass(String name, String outerName, String innerName, int access)
|
CodeVisitor | visitMethod(int access, String name, String desc, String[] exceptions, Attribute attrs)
|
TraceClassVisitor
public TraceClassVisitor(ClassVisitor cv,
PrintWriter pw)
cv
- the class visitor to which this adapter must delegate calls. May
be null.pw
- the print writer to be used to print the class.
main
public static void main(String[] args)
throws Exception
Prints a disassembled view of the given class to the standard output.
Usage: TraceClassVisitor [-debug]
<fully qualified class name or class file name >
args
- the command line arguments.
visit
public void visit(int version,
int access,
String name,
String superName,
String[] interfaces,
String sourceFile)
- visit in interface ClassVisitor
visitInnerClass
public void visitInnerClass(String name,
String outerName,
String innerName,
int access)
- visitInnerClass in interface ClassVisitor