Class JasminDumper

java.lang.Object
com.googlecode.d2j.jasmin.JasminDumper
All Implemented Interfaces:
org.objectweb.asm.Opcodes

public class JasminDumper extends Object implements org.objectweb.asm.Opcodes
get from asm example

Disassembled view of the classes in Jasmin assembler format.

The trace printed when visiting the Hello class is the following:

 .bytecode 45.3
 .class public Hello
 .super java/lang/Object

 .method public <init>()V
 aload 0
 invokespecial java/lang/Object/<init>()V
 return
 .limit locals 1
 .limit stack 1
 .end method

 .method 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
 .limit locals 2
 .limit stack 2
 .end method
 
where Hello is defined by:

 public class Hello {

     public static void main(String[] args) {
         System.out.println("hello");
     }
 }
 
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Map<org.objectweb.asm.Label,String>
    The label names.
    protected PrintWriter
    The print writer to be used to print the class.

    Fields inherited from interface org.objectweb.asm.Opcodes

    AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected String
    accessClz(int access)
     
    protected String
    accessFld(int access)
     
    protected String
    accessMtd(int access)
     
    void
    dump(org.objectweb.asm.tree.ClassNode cn)
     
    protected void
    print(int opcode)
     
    protected void
     
    protected void
    print(org.objectweb.asm.Label l)
     
    protected void
    print(org.objectweb.asm.tree.LabelNode l)
     
    protected void
    printAnnotation(org.objectweb.asm.tree.AnnotationNode n, int visible, int param)
     
    protected void
     
    protected void
     
    protected void
     
    protected void
    println(String directive, String arg)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • pw

      protected PrintWriter pw
      The print writer to be used to print the class.
    • labelNames

      protected final Map<org.objectweb.asm.Label,String> labelNames
      The label names. This map associate String values to Label keys.
  • Constructor Details

  • Method Details

    • dump

      public void dump(org.objectweb.asm.tree.ClassNode cn)
    • println

      protected void println(String directive, String arg)
    • accessClz

      protected String accessClz(int access)
    • accessFld

      protected String accessFld(int access)
    • accessMtd

      protected String accessMtd(int access)
    • print

      protected void print(int opcode)
    • print

      protected void print(Object cst)
    • print

      protected void print(org.objectweb.asm.Label l)
    • print

      protected void print(org.objectweb.asm.tree.LabelNode l)
    • printAnnotation

      protected void printAnnotation(org.objectweb.asm.tree.AnnotationNode n, int visible, int param)
    • printAnnotationValue

      protected void printAnnotationValue(Object value)
    • printAnnotationArrayValue

      protected void printAnnotationArrayValue(Object value)
    • printFrameType

      protected void printFrameType(Object type)