org.objectweb.asm.util

Class TraceMethodVisitor

public class TraceMethodVisitor extends TraceAbstractVisitor implements MethodVisitor

A {@link MethodVisitor} that prints a disassembled view of the methods it visits.

Author: Eric Bruneton

Field Summary
protected HashMaplabelNames
The label names.
protected Stringltab
Tab for labels.
protected MethodVisitormv
The {@link MethodVisitor} to which this visitor delegates calls.
protected Stringtab2
Tab for bytecode instructions.
protected Stringtab3
Tab for table and lookup switch instructions.
Constructor Summary
TraceMethodVisitor()
Constructs a new {@link TraceMethodVisitor}.
TraceMethodVisitor(MethodVisitor mv)
Constructs a new {@link TraceMethodVisitor}.
Method Summary
voidappendLabel(Label l)
Appends the name of the given label to {@link #buf buf}.
AnnotationVisitorvisitAnnotation(String desc, boolean visible)
AnnotationVisitorvisitAnnotationDefault()
voidvisitAttribute(Attribute attr)
voidvisitCode()
voidvisitEnd()
voidvisitFieldInsn(int opcode, String owner, String name, String desc)
voidvisitIincInsn(int var, int increment)
voidvisitInsn(int opcode)
voidvisitIntInsn(int opcode, int operand)
voidvisitJumpInsn(int opcode, Label label)
voidvisitLabel(Label label)
voidvisitLdcInsn(Object cst)
voidvisitLineNumber(int line, Label start)
voidvisitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
voidvisitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
voidvisitMaxs(int maxStack, int maxLocals)
voidvisitMethodInsn(int opcode, String owner, String name, String desc)
voidvisitMultiANewArrayInsn(String desc, int dims)
AnnotationVisitorvisitParameterAnnotation(int parameter, String desc, boolean visible)
voidvisitTableSwitchInsn(int min, int max, Label dflt, Label[] labels)
voidvisitTryCatchBlock(Label start, Label end, Label handler, String type)
voidvisitTypeInsn(int opcode, String desc)
voidvisitVarInsn(int opcode, int var)

Field Detail

labelNames

protected final HashMap labelNames
The label names. This map associate String values to Label keys.

ltab

protected String ltab
Tab for labels.

mv

protected MethodVisitor mv
The {@link MethodVisitor} to which this visitor delegates calls. May be null.

tab2

protected String tab2
Tab for bytecode instructions.

tab3

protected String tab3
Tab for table and lookup switch instructions.

Constructor Detail

TraceMethodVisitor

public TraceMethodVisitor()
Constructs a new {@link TraceMethodVisitor}.

TraceMethodVisitor

public TraceMethodVisitor(MethodVisitor mv)
Constructs a new {@link TraceMethodVisitor}.

Parameters: mv the {@link MethodVisitor} to which this visitor delegates calls. May be null.

Method Detail

appendLabel

public void appendLabel(Label l)
Appends the name of the given label to {@link #buf buf}. Creates a new label name if the given label does not yet have one.

Parameters: l a label.

visitAnnotation

public AnnotationVisitor visitAnnotation(String desc, boolean visible)

visitAnnotationDefault

public AnnotationVisitor visitAnnotationDefault()

visitAttribute

public void visitAttribute(Attribute attr)

visitCode

public void visitCode()

visitEnd

public void visitEnd()

visitFieldInsn

public void visitFieldInsn(int opcode, String owner, String name, String desc)

visitIincInsn

public void visitIincInsn(int var, int increment)

visitInsn

public void visitInsn(int opcode)

visitIntInsn

public void visitIntInsn(int opcode, int operand)

visitJumpInsn

public void visitJumpInsn(int opcode, Label label)

visitLabel

public void visitLabel(Label label)

visitLdcInsn

public void visitLdcInsn(Object cst)

visitLineNumber

public void visitLineNumber(int line, Label start)

visitLocalVariable

public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)

visitLookupSwitchInsn

public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)

visitMaxs

public void visitMaxs(int maxStack, int maxLocals)

visitMethodInsn

public void visitMethodInsn(int opcode, String owner, String name, String desc)

visitMultiANewArrayInsn

public void visitMultiANewArrayInsn(String desc, int dims)

visitParameterAnnotation

public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible)

visitTableSwitchInsn

public void visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels)

visitTryCatchBlock

public void visitTryCatchBlock(Label start, Label end, Label handler, String type)

visitTypeInsn

public void visitTypeInsn(int opcode, String desc)

visitVarInsn

public void visitVarInsn(int opcode, int var)