| Modifier and Type | Field and Description |
|---|---|
static int |
CLASS_DECLARATION
Constant used in
appendDescriptor for class
signatures, formatted in default Java notation (non-bytecode) |
static int |
CLASS_SIGNATURE
Constant used in
appendDescriptor for class
signatures, formatted in bytecode notation |
static int |
FIELD_DESCRIPTOR
Constant used in
appendDescriptor for field
descriptors, formatted in bytecode notation |
static int |
FIELD_SIGNATURE
Constant used in
appendDescriptor for field
signatures, formatted in bytecode notation |
static int |
HANDLE_DESCRIPTOR
Constant used in
appendDescriptor for handle
descriptors, formatted in bytecode notation |
static int |
INTERNAL_NAME
Constant used in
appendDescriptor for internal
type names in bytecode notation. |
protected Map<Label,String> |
labelNames
The label names.
|
protected String |
ltab
Tab for labels.
|
static int |
METHOD_DESCRIPTOR
Constant used in
appendDescriptor for method
descriptors, formatted in bytecode notation |
static int |
METHOD_SIGNATURE
Constant used in
appendDescriptor for method
signatures, formatted in bytecode notation |
static int |
PARAMETERS_DECLARATION
Constant used in
appendDescriptor for method
parameter signatures, formatted in default Java notation (non-bytecode) |
protected String |
tab
Tab for class members.
|
protected String |
tab2
Tab for bytecode instructions.
|
protected String |
tab3
Tab for table and lookup switch instructions.
|
static int |
TYPE_DECLARATION
Constant used in
appendDescriptor for field or
method return value signatures, formatted in default Java notation
(non-bytecode) |
| Modifier | Constructor and Description |
|---|---|
|
Textifier()
Constructs a new
Textifier. |
protected |
Textifier(int api)
Constructs a new
Textifier. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
appendDescriptor(int type,
String desc)
Appends an internal name, a type descriptor or a type signature to
buf. |
protected void |
appendHandle(Handle h)
Appends the information about the given handle to
buf. |
protected void |
appendLabel(Label l)
Appends the name of the given label to
buf. |
protected Textifier |
createTextifier()
Creates a new TraceVisitor instance.
|
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)
Class header.
|
void |
visit(String name,
Object value)
Annotation value.
|
Textifier |
visitAnnotation(String desc,
boolean visible)
Prints a disassembled view of the given annotation.
|
Textifier |
visitAnnotation(String name,
String desc)
Nested annotation value.
|
Textifier |
visitAnnotationDefault()
Method default annotation.
|
void |
visitAnnotationEnd()
Annotation end.
|
Textifier |
visitArray(String name)
Annotation array value.
|
void |
visitAttribute(Attribute attr)
Prints a disassembled view of the given attribute.
|
Textifier |
visitClassAnnotation(String desc,
boolean visible)
Class annotation.
|
void |
visitClassAttribute(Attribute attr)
Class attribute.
|
void |
visitClassEnd()
Class end.
|
Printer |
visitClassTypeAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Class type annotation.
|
void |
visitCode()
Method start.
|
void |
visitEnum(String name,
String desc,
String value)
Annotation enum value.
|
Textifier |
visitField(int access,
String name,
String desc,
String signature,
Object value)
Class field.
|
Textifier |
visitFieldAnnotation(String desc,
boolean visible)
Field annotation.
|
void |
visitFieldAttribute(Attribute attr)
Field attribute.
|
void |
visitFieldEnd()
Field end.
|
void |
visitFieldInsn(int opcode,
String owner,
String name,
String desc)
Method instruction.
|
Printer |
visitFieldTypeAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Field type annotation.
|
void |
visitFrame(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack)
Method stack frame.
|
void |
visitIincInsn(int var,
int increment)
Method instruction.
|
void |
visitInnerClass(String name,
String outerName,
String innerName,
int access)
Class inner name.
|
void |
visitInsn(int opcode)
Method instruction.
|
Printer |
visitInsnAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Instruction type annotation.
|
void |
visitIntInsn(int opcode,
int operand)
Method instruction.
|
void |
visitInvokeDynamicInsn(String name,
String desc,
Handle bsm,
Object... bsmArgs)
Method instruction.
|
void |
visitJumpInsn(int opcode,
Label label)
Method instruction.
|
void |
visitLabel(Label label)
Method label.
|
void |
visitLdcInsn(Object cst)
Method instruction.
|
void |
visitLineNumber(int line,
Label start)
Method debug info.
|
void |
visitLocalVariable(String name,
String desc,
String signature,
Label start,
Label end,
int index)
Method debug info.
|
Printer |
visitLocalVariableAnnotation(int typeRef,
TypePath typePath,
Label[] start,
Label[] end,
int[] index,
String desc,
boolean visible)
Local variable type annotation.
|
void |
visitLookupSwitchInsn(Label dflt,
int[] keys,
Label[] labels)
Method instruction.
|
void |
visitMaxs(int maxStack,
int maxLocals)
Method max stack and max locals.
|
Textifier |
visitMethod(int access,
String name,
String desc,
String signature,
String[] exceptions)
Class method.
|
Textifier |
visitMethodAnnotation(String desc,
boolean visible)
Method annotation.
|
void |
visitMethodAttribute(Attribute attr)
Method attribute.
|
void |
visitMethodEnd()
Method end.
|
void |
visitMethodInsn(int opcode,
String owner,
String name,
String desc)
Deprecated.
|
void |
visitMethodInsn(int opcode,
String owner,
String name,
String desc,
boolean itf)
Method instruction.
|
Printer |
visitMethodTypeAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Method type annotation.
|
void |
visitMultiANewArrayInsn(String desc,
int dims)
Method instruction.
|
void |
visitOuterClass(String owner,
String name,
String desc)
Class outer class.
|
void |
visitParameter(String name,
int access)
Method parameter.
|
Textifier |
visitParameterAnnotation(int parameter,
String desc,
boolean visible)
Method parameter annotation.
|
void |
visitSource(String file,
String debug)
Class source.
|
void |
visitTableSwitchInsn(int min,
int max,
Label dflt,
Label... labels)
Method instruction.
|
Printer |
visitTryCatchAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Try catch block type annotation.
|
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
String type)
Method exception handler.
|
Textifier |
visitTypeAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Prints a disassembled view of the given type annotation.
|
void |
visitTypeInsn(int opcode,
String type)
Method instruction.
|
void |
visitVarInsn(int opcode,
int var)
Method instruction.
|
appendString, getText, printpublic static final int INTERNAL_NAME
appendDescriptor for internal
type names in bytecode notation.public static final int FIELD_DESCRIPTOR
appendDescriptor for field
descriptors, formatted in bytecode notationpublic static final int FIELD_SIGNATURE
appendDescriptor for field
signatures, formatted in bytecode notationpublic static final int METHOD_DESCRIPTOR
appendDescriptor for method
descriptors, formatted in bytecode notationpublic static final int METHOD_SIGNATURE
appendDescriptor for method
signatures, formatted in bytecode notationpublic static final int CLASS_SIGNATURE
appendDescriptor for class
signatures, formatted in bytecode notationpublic static final int TYPE_DECLARATION
appendDescriptor for field or
method return value signatures, formatted in default Java notation
(non-bytecode)public static final int CLASS_DECLARATION
appendDescriptor for class
signatures, formatted in default Java notation (non-bytecode)public static final int PARAMETERS_DECLARATION
appendDescriptor for method
parameter signatures, formatted in default Java notation (non-bytecode)public static final int HANDLE_DESCRIPTOR
appendDescriptor for handle
descriptors, formatted in bytecode notationprotected String tab
protected String tab2
protected String tab3
protected String ltab
public Textifier()
Textifier. Subclasses must not use this
constructor. Instead, they must use the Textifier(int)
version.IllegalStateException - If a subclass calls this constructor.protected Textifier(int api)
Textifier.api - the ASM API version implemented by this visitor. Must be one
of Opcodes.ASM4 or Opcodes.ASM5.public static void main(String[] args) throws Exception
Usage: Textifier [-debug] <binary class name or class file name >
args - the command line arguments.Exception - if the class cannot be found, or if an IO exception occurs.public void visit(int version,
int access,
String name,
String signature,
String superName,
String[] interfaces)
Printerpublic void visitSource(String file, String debug)
PrinterClassVisitor.visitSource(java.lang.String, java.lang.String).visitSource in class Printerpublic void visitOuterClass(String owner, String name, String desc)
PrinterClassVisitor.visitOuterClass(java.lang.String, java.lang.String, java.lang.String).visitOuterClass in class Printerpublic Textifier visitClassAnnotation(String desc, boolean visible)
PrinterClassVisitor.visitAnnotation(java.lang.String, boolean).visitClassAnnotation in class Printerpublic Printer visitClassTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
PrinterClassVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitClassTypeAnnotation in class Printerpublic void visitClassAttribute(Attribute attr)
PrinterClassVisitor.visitAttribute(org.objectweb.asm.Attribute).visitClassAttribute in class Printerpublic void visitInnerClass(String name, String outerName, String innerName, int access)
PrinterClassVisitor.visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int).visitInnerClass in class Printerpublic Textifier visitField(int access, String name, String desc, String signature, Object value)
PrinterClassVisitor.visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object).visitField in class Printerpublic Textifier visitMethod(int access, String name, String desc, String signature, String[] exceptions)
PrinterClassVisitor.visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]).visitMethod in class Printerpublic void visitClassEnd()
PrinterClassVisitor.visitEnd().visitClassEnd in class Printerpublic void visit(String name, Object value)
PrinterAnnotationVisitor.visit(java.lang.String, java.lang.Object).public void visitEnum(String name, String desc, String value)
PrinterAnnotationVisitor.visitEnum(java.lang.String, java.lang.String, java.lang.String).public Textifier visitAnnotation(String name, String desc)
PrinterAnnotationVisitor.visitAnnotation(java.lang.String, java.lang.String).visitAnnotation in class Printerpublic Textifier visitArray(String name)
PrinterAnnotationVisitor.visitArray(java.lang.String).visitArray in class Printerpublic void visitAnnotationEnd()
PrinterAnnotationVisitor.visitEnd().visitAnnotationEnd in class Printerpublic Textifier visitFieldAnnotation(String desc, boolean visible)
PrinterFieldVisitor.visitAnnotation(java.lang.String, boolean).visitFieldAnnotation in class Printerpublic Printer visitFieldTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
PrinterFieldVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitFieldTypeAnnotation in class Printerpublic void visitFieldAttribute(Attribute attr)
PrinterFieldVisitor.visitAttribute(org.objectweb.asm.Attribute).visitFieldAttribute in class Printerpublic void visitFieldEnd()
PrinterFieldVisitor.visitEnd().visitFieldEnd in class Printerpublic void visitParameter(String name, int access)
PrinterMethodVisitor.visitParameter(String, int).visitParameter in class Printerpublic Textifier visitAnnotationDefault()
PrinterMethodVisitor.visitAnnotationDefault().visitAnnotationDefault in class Printerpublic Textifier visitMethodAnnotation(String desc, boolean visible)
PrinterMethodVisitor.visitAnnotation(java.lang.String, boolean).visitMethodAnnotation in class Printerpublic Printer visitMethodTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
PrinterMethodVisitor.visitTypeAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitMethodTypeAnnotation in class Printerpublic Textifier visitParameterAnnotation(int parameter, String desc, boolean visible)
PrinterMethodVisitor.visitParameterAnnotation(int, java.lang.String, boolean).visitParameterAnnotation in class Printerpublic void visitMethodAttribute(Attribute attr)
PrinterMethodVisitor.visitAttribute(org.objectweb.asm.Attribute).visitMethodAttribute in class Printerpublic void visitCode()
PrinterMethodVisitor.visitCode().public void visitFrame(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack)
PrinterMethodVisitor.visitFrame(int, int, java.lang.Object[], int, java.lang.Object[]).visitFrame in class Printerpublic void visitInsn(int opcode)
PrinterMethodVisitor.visitInsn(int)
.public void visitIntInsn(int opcode,
int operand)
PrinterMethodVisitor.visitIntInsn(int, int).visitIntInsn in class Printerpublic void visitVarInsn(int opcode,
int var)
PrinterMethodVisitor.visitVarInsn(int, int).visitVarInsn in class Printerpublic void visitTypeInsn(int opcode,
String type)
PrinterMethodVisitor.visitTypeInsn(int, java.lang.String).visitTypeInsn in class Printerpublic void visitFieldInsn(int opcode,
String owner,
String name,
String desc)
PrinterMethodVisitor.visitFieldInsn(int, java.lang.String, java.lang.String, java.lang.String).visitFieldInsn in class Printer@Deprecated public void visitMethodInsn(int opcode, String owner, String name, String desc)
PrinterMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String).visitMethodInsn in class Printerpublic void visitMethodInsn(int opcode,
String owner,
String name,
String desc,
boolean itf)
PrinterMethodVisitor.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String).visitMethodInsn in class Printerpublic void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs)
PrinterMethodVisitor.visitInvokeDynamicInsn(java.lang.String, java.lang.String, org.objectweb.asm.Handle, java.lang.Object...).visitInvokeDynamicInsn in class Printerpublic void visitJumpInsn(int opcode,
Label label)
PrinterMethodVisitor.visitJumpInsn(int, org.objectweb.asm.Label).visitJumpInsn in class Printerpublic void visitLabel(Label label)
PrinterMethodVisitor.visitLabel(org.objectweb.asm.Label).visitLabel in class Printerpublic void visitLdcInsn(Object cst)
PrinterMethodVisitor.visitLdcInsn(java.lang.Object).visitLdcInsn in class Printerpublic void visitIincInsn(int var,
int increment)
PrinterMethodVisitor.visitIincInsn(int, int).visitIincInsn in class Printerpublic void visitTableSwitchInsn(int min,
int max,
Label dflt,
Label... labels)
PrinterMethodVisitor.visitTableSwitchInsn(int, int, org.objectweb.asm.Label, org.objectweb.asm.Label...).visitTableSwitchInsn in class Printerpublic void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
PrinterMethodVisitor.visitLookupSwitchInsn(org.objectweb.asm.Label, int[], org.objectweb.asm.Label[]).visitLookupSwitchInsn in class Printerpublic void visitMultiANewArrayInsn(String desc, int dims)
PrinterMethodVisitor.visitMultiANewArrayInsn(java.lang.String, int).visitMultiANewArrayInsn in class Printerpublic Printer visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
PrinterMethodVisitor.visitInsnAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitInsnAnnotation in class Printerpublic void visitTryCatchBlock(Label start, Label end, Label handler, String type)
PrinterMethodVisitor.visitTryCatchBlock(org.objectweb.asm.Label, org.objectweb.asm.Label, org.objectweb.asm.Label, java.lang.String).visitTryCatchBlock in class Printerpublic Printer visitTryCatchAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
PrinterMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitTryCatchAnnotation in class Printerpublic void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
PrinterMethodVisitor.visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int).visitLocalVariable in class Printerpublic Printer visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String desc, boolean visible)
PrinterMethodVisitor.visitTryCatchAnnotation(int, org.objectweb.asm.TypePath, java.lang.String, boolean).visitLocalVariableAnnotation in class Printerpublic void visitLineNumber(int line,
Label start)
PrinterMethodVisitor.visitLineNumber(int, org.objectweb.asm.Label).visitLineNumber in class Printerpublic void visitMaxs(int maxStack,
int maxLocals)
PrinterMethodVisitor.visitMaxs(int, int).public void visitMethodEnd()
PrinterMethodVisitor.visitEnd().visitMethodEnd in class Printerpublic Textifier visitAnnotation(String desc, boolean visible)
desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public Textifier visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
typeRef - a reference to the annotated type. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public void visitAttribute(Attribute attr)
attr - an attribute.protected Textifier createTextifier()
protected void appendDescriptor(int type,
String desc)
buf.type - indicates if desc is an internal name, a field descriptor, a
method descriptor, a class signature, ...desc - an internal name, type descriptor, or type signature. May be
null.protected void appendLabel(Label l)
buf. Creates a new
label name if the given label does not yet have one.l - a label.