public final class CallVM extends AbstractVM
conf| Constructor and Description |
|---|
CallVM(SymbolicEnvironment env,
ConcolicInstrumentingClassLoader classLoader)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
ARETURN() |
void |
CALL_RESULT(boolean res,
String owner,
String name,
String desc)
Our chance to capture the value returned by a native or un-instrumented
method.
|
void |
CALL_RESULT(double res,
String owner,
String name,
String desc) |
void |
CALL_RESULT(float res,
String owner,
String name,
String desc) |
void |
CALL_RESULT(int res,
String owner,
String name,
String desc)
int, short, byte all map to a BitVec32
TODO: Will this work for char?
|
void |
CALL_RESULT(long res,
String owner,
String name,
String desc) |
void |
CALL_RESULT(Object res,
String owner,
String name,
String desc) |
void |
CALL_RESULT(String owner,
String name,
String desc)
No actual return value.
|
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
boolean value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
byte value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
char value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
double value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
float value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
int value)
Pass a caller's nr-th concrete method argument value (which is sitting on
the caller's operand stack).
|
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
long value) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
Object conc_ref) |
void |
CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
short value) |
void |
DRETURN() |
void |
FRETURN() |
void |
HANDLER_BEGIN(int access,
String className,
String methName,
String methDesc)
Begin of a basic block that is the begin of an exception handler.
|
void |
INVOKEINTERFACE(Object conc_receiver,
String className,
String methName,
String methDesc)
We get this callback right before the user code makes the corresponding
call to interface method className.methName(methDesc).
|
void |
INVOKESPECIAL(Object conc_receiver,
String className,
String methName,
String methDesc) |
void |
INVOKESPECIAL(String className,
String methName,
String methDesc)
Used to invoke any
instance initialization method
|
void |
INVOKESTATIC(String className,
String methName,
String methDesc)
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.
|
void |
INVOKEVIRTUAL(Object conc_receiver,
String className,
String methName,
String methDesc)
We get this callback right before the user code makes the corresponding
virtual call to method className.methName(methDesc).
|
void |
IRETURN()
Dispose our frame and transfer the return value back.
|
void |
LRETURN() |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
boolean value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
byte value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
char value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
double value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
float value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
int value)
Pass index-th concrete parameter of the just called method.
|
void |
METHOD_BEGIN_PARAM(int nr,
int index,
long value) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
Object conc_ref) |
void |
METHOD_BEGIN_PARAM(int nr,
int index,
short value) |
void |
METHOD_BEGIN_RECEIVER(Object value)
METHOD_BEGIN_PARAM for the receiver instance ("this"), if this method is
a non-constructor instance method.
|
void |
METHOD_BEGIN(int access,
String className,
String methName,
String methDesc)
Pop operands off caller stack
Method methName is about to start execution.
|
void |
METHOD_MAXS(String className,
String methName,
String methDesc,
int maxStack,
int maxLocals)
Cache max values for this method, except for static initializers.
|
void |
RETURN()
Dispose our frame, we have no value to return.
|
AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ALOAD, ANEWARRAY, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ASTORE, ATHROW, BALOAD, BASTORE, BB_BEGIN, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DLOAD, DMUL, DNEG, DREM, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSTORE, DSUB, DUP_X1, DUP_X2, DUP, DUP2_X1, DUP2_X2, DUP2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FLOAD, FMUL, FNEG, FREM, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO_W, GOTO, 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_0, ILOAD_1, ILOAD_2, ILOAD_3, ILOAD, IMUL, INEG, INSTANCEOF, IOR, IREM, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISTORE, ISUB, IUSHR, IXOR, JSR_W, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC_W, LDC, LDC, LDC, LDC, LDC2_W, LDC2_W, LDIV, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LLOAD, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LSHL, LSHR, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, SALOAD, SASTORE, SIPUSH, SRC_LINE_NUMBER, SWAP, TABLESWITCH, UNUSED, WIDEpublic CallVM(SymbolicEnvironment env, ConcolicInstrumentingClassLoader classLoader)
public void HANDLER_BEGIN(int access,
String className,
String methName,
String methDesc)
HANDLER_BEGIN in interface IVMHANDLER_BEGIN in class AbstractVMpublic void METHOD_MAXS(String className, String methName, String methDesc, int maxStack, int maxLocals)
METHOD_MAXS in interface IVMMETHOD_MAXS in class AbstractVMpublic void METHOD_BEGIN(int access,
String className,
String methName,
String methDesc)
METHOD_BEGIN in interface IVMMETHOD_BEGIN in class AbstractVMpublic void METHOD_BEGIN_RECEIVER(Object value)
IVMMETHOD_BEGIN_RECEIVER in interface IVMMETHOD_BEGIN_RECEIVER in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
int value)
IVMMETHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMnr - index of the parameter, not counting the receiver and ignoring
the additional width of category-2 parameters. E.g., in
foo(double a, int b) parameter b would always have nr 1,
regardless of foo being an instance method or not.index - is the index in which this value is stored in the receiver
frame. In contrast to nr, this accounts for the receiver and
the different widths of category-1 and category-2 parameter
types.public void METHOD_BEGIN_PARAM(int nr,
int index,
boolean value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
byte value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
char value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
short value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
long value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
double value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
float value)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void METHOD_BEGIN_PARAM(int nr,
int index,
Object conc_ref)
METHOD_BEGIN_PARAM in interface IVMMETHOD_BEGIN_PARAM in class AbstractVMpublic void INVOKESTATIC(String className, String methName, String methDesc)
INVOKESTATIC in interface IVMINVOKESTATIC in class AbstractVMpublic void INVOKESPECIAL(String className, String methName, String methDesc)
INVOKESPECIAL in interface IVMINVOKESPECIAL in class AbstractVMpublic void INVOKESPECIAL(Object conc_receiver, String className, String methName, String methDesc)
INVOKESPECIAL in interface IVMINVOKESPECIAL in class AbstractVMpublic void INVOKEVIRTUAL(Object conc_receiver, String className, String methName, String methDesc)
ConcolicMethodAdapter.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
The current instrumentation system only calls this version of INVOKEVIRTUAL for methods that take two or fewer parameters. http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2. doc6.html#invokevirtual
INVOKEVIRTUAL in interface IVMINVOKEVIRTUAL in class AbstractVMpublic void INVOKEINTERFACE(Object conc_receiver, String className, String methName, String methDesc)
ConcolicMethodAdapter.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)
http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2. doc6.html#invokeinterface
INVOKEINTERFACE in interface IVMINVOKEINTERFACE in class AbstractVMpublic void RETURN()
RETURN in interface IVMRETURN in class AbstractVMpublic void IRETURN()
IRETURN in interface IVMIRETURN in class AbstractVMpublic void LRETURN()
LRETURN in interface IVMLRETURN in class AbstractVMpublic void FRETURN()
FRETURN in interface IVMFRETURN in class AbstractVMpublic void DRETURN()
DRETURN in interface IVMDRETURN in class AbstractVMpublic void ARETURN()
ARETURN in interface IVMARETURN in class AbstractVMpublic void CALL_RESULT(String owner, String name, String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(boolean res,
String owner,
String name,
String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(int res,
String owner,
String name,
String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(Object res, String owner, String name, String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(long res,
String owner,
String name,
String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(double res,
String owner,
String name,
String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALL_RESULT(float res,
String owner,
String name,
String desc)
CALL_RESULT in interface IVMCALL_RESULT in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
int value)
IVMThere is no CALLER_STACK_RECEIVER, as the receiver is already passed by the corresponding INVOKE.
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMnr - index of the parameter, not counting the receiver and ignoring
the additional width of category-2 parameters. E.g., in
foo(double a, int b) parameter b would always have nr 1,
regardless of foo being an instance method or not.calleeLocalsIndex - is the index in which this value is stored in the receiver
frame. In contrast to nr, this accounts for the receiver and
the different widths of category-1 and category-2 parameter
types.public void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
boolean value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
short value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
byte value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
char value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
long value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
float value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
double value)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMpublic void CALLER_STACK_PARAM(int nr,
int calleeLocalsIndex,
Object conc_ref)
CALLER_STACK_PARAM in interface IVMCALLER_STACK_PARAM in class AbstractVMCopyright © 2010–2017 EvoSuite. All rights reserved.