Class SymbolicWrapperMethodAdapter

java.lang.Object
org.objectweb.asm.MethodVisitor
de.uzl.its.swat.instrument.AbstractMethodAdapter
de.uzl.its.swat.instrument.symbolicwrapper.SymbolicWrapperMethodAdapter

public class SymbolicWrapperMethodAdapter extends AbstractMethodAdapter
  • Constructor Details

    • SymbolicWrapperMethodAdapter

      public SymbolicWrapperMethodAdapter(org.objectweb.asm.MethodVisitor mv, String cname, String name, String desc)
      Constructor that calls the super from the default MethodVisitor
      Parameters:
      mv - Parent MethodVisitor
      name - The method name
      desc - A string description of the parameters of the method
  • Method Details

    • visitCode

      public void visitCode()
      Overrides:
      visitCode in class org.objectweb.asm.MethodVisitor
    • visitInsn

      public void visitInsn(int opcode)
      Visits a zero operand instruction. Adds the ending call for the concolic engine
      Overrides:
      visitInsn in class org.objectweb.asm.MethodVisitor
      Parameters:
      opcode - the opcode of the instruction to be visited. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
    • insertHeaderIfNeeded

      public void insertHeaderIfNeeded()
      Starts the visit of the method's code, if any (i.e. non abstract method). Adds the beginning call for the concolic engine to the method