Package | Description |
---|---|
gov.nasa.jpf | |
gov.nasa.jpf.jvm | |
gov.nasa.jpf.jvm.bytecode | |
gov.nasa.jpf.listener | |
gov.nasa.jpf.report | |
gov.nasa.jpf.vm |
Modifier and Type | Method and Description |
---|---|
void |
PropertyListenerAdapter.choiceGeneratorRegistered(VM vm,
ChoiceGenerator<?> nextCG,
ThreadInfo currentThread,
Instruction executedInstruction) |
void |
ListenerAdapter.choiceGeneratorRegistered(VM vm,
ChoiceGenerator<?> nextCG,
ThreadInfo currentThread,
Instruction executedInstruction) |
void |
PropertyListenerAdapter.executeInstruction(VM vm,
ThreadInfo currentThread,
Instruction instructionToExecute) |
void |
ListenerAdapter.executeInstruction(VM vm,
ThreadInfo currentThread,
Instruction instructionToExecute) |
void |
PropertyListenerAdapter.instructionExecuted(VM vm,
ThreadInfo currentThread,
Instruction nextInstruction,
Instruction executedInstruction) |
void |
ListenerAdapter.instructionExecuted(VM vm,
ThreadInfo currentThread,
Instruction nextInstruction,
Instruction executedInstruction) |
Modifier and Type | Class and Description |
---|---|
class |
JVMInstruction
an Instruction class that implements an InstructionVisitorAcceptor
This is the common root class for all Java bytecodes
|
Modifier and Type | Field and Description |
---|---|
protected ArrayList<Instruction> |
JVMCodeBuilder.code |
Modifier and Type | Method and Description |
---|---|
abstract Instruction |
JVMInstructionFactory.aaload() |
abstract Instruction |
JVMInstructionFactory.aastore() |
abstract Instruction |
JVMInstructionFactory.aconst_null() |
abstract Instruction |
JVMInstructionFactory.aload_0() |
abstract Instruction |
JVMInstructionFactory.aload_1() |
abstract Instruction |
JVMInstructionFactory.aload_2() |
abstract Instruction |
JVMInstructionFactory.aload_3() |
abstract Instruction |
JVMInstructionFactory.aload(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.anewarray(String clsName) |
abstract Instruction |
JVMInstructionFactory.areturn() |
abstract Instruction |
JVMInstructionFactory.arraylength() |
abstract Instruction |
JVMInstructionFactory.astore_0() |
abstract Instruction |
JVMInstructionFactory.astore_1() |
abstract Instruction |
JVMInstructionFactory.astore_2() |
abstract Instruction |
JVMInstructionFactory.astore_3() |
abstract Instruction |
JVMInstructionFactory.astore(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.athrow() |
abstract Instruction |
JVMInstructionFactory.baload() |
abstract Instruction |
JVMInstructionFactory.bastore() |
abstract Instruction |
JVMInstructionFactory.bipush(int b) |
abstract Instruction |
JVMInstructionFactory.caload() |
abstract Instruction |
JVMInstructionFactory.castore() |
abstract Instruction |
JVMInstructionFactory.checkcast(String clsName) |
abstract Instruction |
JVMInstructionFactory.d2f() |
abstract Instruction |
JVMInstructionFactory.d2i() |
abstract Instruction |
JVMInstructionFactory.d2l() |
abstract Instruction |
JVMInstructionFactory.dadd() |
abstract Instruction |
JVMInstructionFactory.daload() |
abstract Instruction |
JVMInstructionFactory.dastore() |
abstract Instruction |
JVMInstructionFactory.dcmpg() |
abstract Instruction |
JVMInstructionFactory.dcmpl() |
abstract Instruction |
JVMInstructionFactory.dconst_0() |
abstract Instruction |
JVMInstructionFactory.dconst_1() |
abstract Instruction |
JVMInstructionFactory.ddiv() |
abstract Instruction |
JVMInstructionFactory.directcallreturn() |
abstract Instruction |
JVMInstructionFactory.dload_0() |
abstract Instruction |
JVMInstructionFactory.dload_1() |
abstract Instruction |
JVMInstructionFactory.dload_2() |
abstract Instruction |
JVMInstructionFactory.dload_3() |
abstract Instruction |
JVMInstructionFactory.dload(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.dmul() |
abstract Instruction |
JVMInstructionFactory.dneg() |
abstract Instruction |
JVMInstructionFactory.drem() |
abstract Instruction |
JVMInstructionFactory.dreturn() |
abstract Instruction |
JVMInstructionFactory.dstore_0() |
abstract Instruction |
JVMInstructionFactory.dstore_1() |
abstract Instruction |
JVMInstructionFactory.dstore_2() |
abstract Instruction |
JVMInstructionFactory.dstore_3() |
abstract Instruction |
JVMInstructionFactory.dstore(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.dsub() |
abstract Instruction |
JVMInstructionFactory.dup_x1() |
abstract Instruction |
JVMInstructionFactory.dup_x2() |
abstract Instruction |
JVMInstructionFactory.dup() |
abstract Instruction |
JVMInstructionFactory.dup2_x1() |
abstract Instruction |
JVMInstructionFactory.dup2_x2() |
abstract Instruction |
JVMInstructionFactory.dup2() |
abstract Instruction |
JVMInstructionFactory.executenative(NativeMethodInfo mi) |
abstract Instruction |
JVMInstructionFactory.f2d() |
abstract Instruction |
JVMInstructionFactory.f2i() |
abstract Instruction |
JVMInstructionFactory.f2l() |
abstract Instruction |
JVMInstructionFactory.fadd() |
abstract Instruction |
JVMInstructionFactory.faload() |
abstract Instruction |
JVMInstructionFactory.fastore() |
abstract Instruction |
JVMInstructionFactory.fcmpg() |
abstract Instruction |
JVMInstructionFactory.fcmpl() |
abstract Instruction |
JVMInstructionFactory.fconst_0() |
abstract Instruction |
JVMInstructionFactory.fconst_1() |
abstract Instruction |
JVMInstructionFactory.fconst_2() |
abstract Instruction |
JVMInstructionFactory.fdiv() |
abstract Instruction |
JVMInstructionFactory.fload_0() |
abstract Instruction |
JVMInstructionFactory.fload_1() |
abstract Instruction |
JVMInstructionFactory.fload_2() |
abstract Instruction |
JVMInstructionFactory.fload_3() |
abstract Instruction |
JVMInstructionFactory.fload(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.fmul() |
abstract Instruction |
JVMInstructionFactory.fneg() |
abstract Instruction |
JVMInstructionFactory.frem() |
abstract Instruction |
JVMInstructionFactory.freturn() |
abstract Instruction |
JVMInstructionFactory.fstore_0() |
abstract Instruction |
JVMInstructionFactory.fstore_1() |
abstract Instruction |
JVMInstructionFactory.fstore_2() |
abstract Instruction |
JVMInstructionFactory.fstore_3() |
abstract Instruction |
JVMInstructionFactory.fstore(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.fsub() |
abstract Instruction |
JVMInstructionFactory.getfield(String fieldName,
String clsName,
String fieldDescriptor) |
abstract Instruction |
JVMInstructionFactory.getstatic(String fieldName,
String clsName,
String fieldDescriptor) |
abstract Instruction |
JVMInstructionFactory.goto_(int targetPc) |
abstract Instruction |
JVMInstructionFactory.goto_w(int targetPc) |
abstract Instruction |
JVMInstructionFactory.i2b() |
abstract Instruction |
JVMInstructionFactory.i2c() |
abstract Instruction |
JVMInstructionFactory.i2d() |
abstract Instruction |
JVMInstructionFactory.i2f() |
abstract Instruction |
JVMInstructionFactory.i2l() |
abstract Instruction |
JVMInstructionFactory.i2s() |
abstract Instruction |
JVMInstructionFactory.iadd() |
abstract Instruction |
JVMInstructionFactory.iaload() |
abstract Instruction |
JVMInstructionFactory.iand() |
abstract Instruction |
JVMInstructionFactory.iastore() |
abstract Instruction |
JVMInstructionFactory.iconst_0() |
abstract Instruction |
JVMInstructionFactory.iconst_1() |
abstract Instruction |
JVMInstructionFactory.iconst_2() |
abstract Instruction |
JVMInstructionFactory.iconst_3() |
abstract Instruction |
JVMInstructionFactory.iconst_4() |
abstract Instruction |
JVMInstructionFactory.iconst_5() |
abstract Instruction |
JVMInstructionFactory.iconst_m1() |
abstract Instruction |
JVMInstructionFactory.idiv() |
abstract Instruction |
JVMInstructionFactory.if_acmpeq(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_acmpne(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmpeq(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmpge(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmpgt(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmple(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmplt(int targetPc) |
abstract Instruction |
JVMInstructionFactory.if_icmpne(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifeq(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifge(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifgt(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifle(int targetPc) |
abstract Instruction |
JVMInstructionFactory.iflt(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifne(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifnonnull(int targetPc) |
abstract Instruction |
JVMInstructionFactory.ifnull(int targetPc) |
abstract Instruction |
JVMInstructionFactory.iinc(int localVarIndex,
int incConstant) |
abstract Instruction |
JVMInstructionFactory.iload_0() |
abstract Instruction |
JVMInstructionFactory.iload_1() |
abstract Instruction |
JVMInstructionFactory.iload_2() |
abstract Instruction |
JVMInstructionFactory.iload_3() |
abstract Instruction |
JVMInstructionFactory.iload(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.imul() |
abstract Instruction |
JVMInstructionFactory.ineg() |
abstract Instruction |
JVMInstructionFactory.instanceof_(String clsName) |
abstract Instruction |
JVMInstructionFactory.invokecg(List<Invocation> invokes) |
abstract Instruction |
JVMInstructionFactory.invokeclinit(ClassInfo ci) |
abstract Instruction |
JVMInstructionFactory.invokeinterface(String clsName,
String methodName,
String methodSignature) |
abstract Instruction |
JVMInstructionFactory.invokespecial(String clsName,
String methodName,
String methodSignature) |
abstract Instruction |
JVMInstructionFactory.invokestatic(String clsName,
String methodName,
String methodSignature) |
abstract Instruction |
JVMInstructionFactory.invokevirtual(String clsName,
String methodName,
String methodSignature) |
abstract Instruction |
JVMInstructionFactory.ior() |
abstract Instruction |
JVMInstructionFactory.irem() |
abstract Instruction |
JVMInstructionFactory.ireturn() |
abstract Instruction |
JVMInstructionFactory.ishl() |
abstract Instruction |
JVMInstructionFactory.ishr() |
abstract Instruction |
JVMInstructionFactory.istore_0() |
abstract Instruction |
JVMInstructionFactory.istore_1() |
abstract Instruction |
JVMInstructionFactory.istore_2() |
abstract Instruction |
JVMInstructionFactory.istore_3() |
abstract Instruction |
JVMInstructionFactory.istore(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.isub() |
abstract Instruction |
JVMInstructionFactory.iushr() |
abstract Instruction |
JVMInstructionFactory.ixor() |
abstract Instruction |
JVMInstructionFactory.jsr_w(int targetPc) |
abstract Instruction |
JVMInstructionFactory.jsr(int targetPc) |
abstract Instruction |
JVMInstructionFactory.l2d() |
abstract Instruction |
JVMInstructionFactory.l2f() |
abstract Instruction |
JVMInstructionFactory.l2i() |
abstract Instruction |
JVMInstructionFactory.ladd() |
abstract Instruction |
JVMInstructionFactory.laload() |
abstract Instruction |
JVMInstructionFactory.land() |
abstract Instruction |
JVMInstructionFactory.lastore() |
abstract Instruction |
JVMInstructionFactory.lcmp() |
abstract Instruction |
JVMInstructionFactory.lconst_0() |
abstract Instruction |
JVMInstructionFactory.lconst_1() |
abstract Instruction |
JVMInstructionFactory.ldc_w(float v) |
abstract Instruction |
JVMInstructionFactory.ldc_w(int v) |
abstract Instruction |
JVMInstructionFactory.ldc_w(String v,
boolean isClass) |
abstract Instruction |
JVMInstructionFactory.ldc(float v) |
abstract Instruction |
JVMInstructionFactory.ldc(int v) |
abstract Instruction |
JVMInstructionFactory.ldc(String v,
boolean isClass) |
abstract Instruction |
JVMInstructionFactory.ldc2_w(double v) |
abstract Instruction |
JVMInstructionFactory.ldc2_w(long v) |
abstract Instruction |
JVMInstructionFactory.ldiv() |
abstract Instruction |
JVMInstructionFactory.lload_0() |
abstract Instruction |
JVMInstructionFactory.lload_1() |
abstract Instruction |
JVMInstructionFactory.lload_2() |
abstract Instruction |
JVMInstructionFactory.lload_3() |
abstract Instruction |
JVMInstructionFactory.lload(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.lmul() |
abstract Instruction |
JVMInstructionFactory.lneg() |
abstract Instruction |
JVMInstructionFactory.lookupswitch(int defaultTargetPc,
int nEntries) |
abstract Instruction |
JVMInstructionFactory.lor() |
abstract Instruction |
JVMInstructionFactory.lrem() |
abstract Instruction |
JVMInstructionFactory.lreturn() |
abstract Instruction |
JVMInstructionFactory.lshl() |
abstract Instruction |
JVMInstructionFactory.lshr() |
abstract Instruction |
JVMInstructionFactory.lstore_0() |
abstract Instruction |
JVMInstructionFactory.lstore_1() |
abstract Instruction |
JVMInstructionFactory.lstore_2() |
abstract Instruction |
JVMInstructionFactory.lstore_3() |
abstract Instruction |
JVMInstructionFactory.lstore(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.lsub() |
abstract Instruction |
JVMInstructionFactory.lushr() |
abstract Instruction |
JVMInstructionFactory.lxor() |
abstract Instruction |
JVMInstructionFactory.monitorenter() |
abstract Instruction |
JVMInstructionFactory.monitorexit() |
abstract Instruction |
JVMInstructionFactory.multianewarray(String clsName,
int dimensions) |
abstract Instruction |
JVMInstructionFactory.nativereturn() |
abstract Instruction |
JVMInstructionFactory.new_(String clsName) |
abstract Instruction |
JVMInstructionFactory.newarray(int typeCode) |
abstract Instruction |
JVMInstructionFactory.nop() |
abstract Instruction |
JVMInstructionFactory.pop() |
abstract Instruction |
JVMInstructionFactory.pop2() |
abstract Instruction |
JVMInstructionFactory.putfield(String fieldName,
String clsName,
String fieldDescriptor) |
abstract Instruction |
JVMInstructionFactory.putstatic(String fieldName,
String clsName,
String fieldDescriptor) |
abstract Instruction |
JVMInstructionFactory.ret(int localVarIndex) |
abstract Instruction |
JVMInstructionFactory.return_() |
abstract Instruction |
JVMInstructionFactory.runstart(MethodInfo miRun) |
abstract Instruction |
JVMInstructionFactory.saload() |
abstract Instruction |
JVMInstructionFactory.sastore() |
abstract Instruction |
JVMInstructionFactory.sipush(int val) |
abstract Instruction |
JVMInstructionFactory.swap() |
abstract Instruction |
JVMInstructionFactory.tableswitch(int defaultTargetPc,
int low,
int high) |
abstract Instruction |
JVMInstructionFactory.wide() |
Modifier and Type | Method and Description |
---|---|
protected void |
JVMCodeBuilder.add(Instruction insn) |
Modifier and Type | Class and Description |
---|---|
class |
AALOAD
Load reference from array
..., arrayref, index => ..., value
|
class |
AASTORE
Store into reference array
..., arrayref, index, value => ...
|
class |
ACONST_NULL
Push null
...
|
class |
ALOAD
Load reference from local variable
...
|
class |
ANEWARRAY
Create new array of reference
..., count => ..., arrayref
|
class |
ARETURN
Return reference from method
..., objectref => [empty]
|
class |
ArrayElementInstruction
abstract class for operations that access elements of arrays
|
class |
ArrayInstruction
abstraction for all array instructions
|
class |
ARRAYLENGTH
Get length of array
..., arrayref => ..., length
|
class |
ArrayLoadInstruction
abstraction for all array load instructions
..., array, index => ..., value
|
class |
ArrayStoreInstruction
abstraction for all array store instructions
...
|
class |
ASTORE
Store reference into local variable
..., objref => ...
|
class |
ATHROW
Throw exception or error
..., objectref => objectref
|
class |
BALOAD
Load byte or boolean from array
..., arrayref, index => ..., value
|
class |
BASTORE
Store into byte or boolean array
..., arrayref, index, value => ...
|
class |
BIPUSH
Push byte
...
|
class |
CALOAD
Load char from array
..., arrayref, index => ..., value
|
class |
CASTORE
Store into char array
..., arrayref, index, value => ...
|
class |
CHECKCAST
Check whether object is of given type
..., objectref => ..., objectref
|
class |
D2F
Convert double to float
..., value => ..., result
|
class |
D2I
Convert double to int
..., value => ..., result
|
class |
D2L
Convert double to long
..., value => ..., result
|
class |
DADD
Add double
..., value1, value2 => ..., result
|
class |
DALOAD
Load double from array
..., arrayref, index => ..., value
|
class |
DASTORE
Store into double array
..., arrayref, index, value => ...
|
class |
DCMPG
Compare double
..., value1, value2 => ..., result
|
class |
DCMPL
Compare double
..., value1, value2 => ..., result
|
class |
DCONST
Push double
...
|
class |
DDIV
Divide double
..., value1, value2 => ..., result
|
class |
DIRECTCALLRETURN
this is used to return from a DirectCallStackFrame
Note that it is NOT a ReturnInstruction, in case listeners monitor these
and expect corresponding InvokeInstructions.
|
class |
DLOAD
Load double from local variable
...
|
class |
DMUL
Multiply double
..., value1, value2 => ..., result
|
class |
DNEG
Negate double
..., value => ..., result
|
class |
DoubleCompareInstruction
base class for double double compare instructions
|
class |
DREM
Remainder double
..., value1, value2 => ..., result
|
class |
DRETURN
Return double from method
..., value => [empty]
|
class |
DSTORE
Store double into local variable
..., value => ...
|
class |
DSUB
Subtract double
..., value1, value2 => ..., result
|
class |
DUP
duplicate topmost stack entry
.., value -> .., value, value
|
class |
DUP_X1
Duplicate the top operand stack value and insert two values down
..., value2, value1 => ..., value1, value2, value1
|
class |
DUP_X2
DOCUMENT ME!
|
class |
DUP2
Duplicate the top one or two operand stack values
..., value2, value1 => ..., value2, value1, value2, value1
|
class |
DUP2_X1
DOCUMENT ME!
|
class |
DUP2_X2
Duplicate the top operand stack value and insert two or three values down
...
|
class |
EXECUTENATIVE
this is a synthetic instruction to (re-)execute native methods
Note that StackFrame and lock handling has to occur from within
the corresponding NativeMethodInfo
|
class |
F2D
Convert float to double
..., value => ..., result
|
class |
F2I
Convert float to int
..., value => ..., result
|
class |
F2L
Convert float to long
..., value => ..., result
|
class |
FADD
Add float
..., value1, value2 => ..., result
|
class |
FALOAD
Load float from array
..., arrayref, index => ..., value
|
class |
FASTORE
Store into float array
..., arrayref, index, value => ...
|
class |
FCMPG
Compare float
..., value1, value2 => ..., result
|
class |
FCMPL
Compare float
..., value1, value2 => ..., result
|
class |
FCONST
Push float
...
|
class |
FDIV
divide float
..., value1, value2 => ..., result
|
class |
FieldInstruction
parent class for PUT/GET FIELD/STATIC insns
<2do> there is a inheritance level missing to deal with instance/static
fields - w/o the instance/static helper methods we would have to duplicate
code in the getters/setters
|
class |
FLOAD
Load float from local variable
...
|
class |
FMUL
Multiply float
..., value1, value2 => ..., result
|
class |
FNEG
Negate float
..., value => ..., result
|
class |
FREM
Remainder float
..., value1, value2 => ..., result
|
class |
FRETURN
Return float from method
..., value => [empty]
|
class |
FSTORE
Store float into local variable
..., value => ...
|
class |
FSUB
Subtract float
..., value1, value2 => ..., result
|
class |
GETFIELD
Fetch field from object
..., objectref => ..., value
|
class |
GETSTATIC
Get static fieldInfo from class
..., => ..., value
|
class |
GOTO
Branch always
No change
<2do> store this as code insnIndex, not as bytecode position
|
class |
GOTO_W |
class |
I2B
Convert int to byte
..., value => ..., result
|
class |
I2C
Convert int to char
..., value => ..., result
|
class |
I2D
Convert int to double
..., value => ..., result
|
class |
I2F
Convert int to float
..., value =>..., result
|
class |
I2L
Convert int to long
..., value => ..., result
|
class |
I2S
Convert int to short
..., value => ..., result
|
class |
IADD
Add int
..., value1, value2 =>..., result
|
class |
IALOAD
Load int from array
..., arrayref, index => ..., value
|
class |
IAND
Boolean AND int
..., value1, value2 => ..., result
|
class |
IASTORE
Store into int array
..., arrayref, index, value => ...
|
class |
ICONST
Push int constant
...
|
class |
IDIV
Divide int
..., value1, value2 =>..., result
|
class |
IF_ACMPEQ
Branch if reference comparison succeeds
..., value1, value2 => ...
|
class |
IF_ACMPNE
Branch if reference comparison does not succeed
..., value1, value2 => ...
|
class |
IF_ICMPEQ
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IF_ICMPGE
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IF_ICMPGT
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IF_ICMPLE
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IF_ICMPLT
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IF_ICMPNE
Branch if int comparison succeeds
..., value1, value2 => ...
|
class |
IFEQ
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IFGE
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IFGT
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IfInstruction
abstraction for all comparison instructions
|
class |
IFLE
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IFLT
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IFNE
Branch if int comparison with zero succeeds
..., value => ...
|
class |
IFNONNULL
Branch if reference not null
..., value => ..., result
|
class |
IFNULL
DOCUMENT ME!
|
class |
IINC
Increment local variable by constant
No change
|
class |
ILOAD
Load int from local variable
...
|
class |
IMUL
Multiply int
..., value1, value2 => ..., result
|
class |
INEG
Negate int
..., value => ..., result
|
class |
InstanceFieldInstruction
class abstracting instructions that access instance fields
|
class |
InstanceInvocation
base class for INVOKEVIRTUAL, INVOKESPECIAL and INVOLEINTERFACE
|
class |
INSTANCEOF
Determine if object is of given type
..., objectref => ..., result
|
class |
INVOKECG
a sytnthetic INVOKE instruction that gets it's parameters from an
InvocationCG.
|
class |
INVOKECLINIT
this is an artificial bytecode that we use to deal with the particularities of
|
class |
InvokeInstruction
abstraction for all invoke instructions
|
class |
INVOKEINTERFACE
Invoke interface method
..., objectref, [arg1, [arg2 ...]] => ...
|
class |
INVOKESPECIAL
Invoke instance method; special handling for superclass, private,
and instance initialization method invocations
..., objectref, [arg1, [arg2 ...]] => ...
|
class |
INVOKESTATIC
Invoke a class (static) method
..., [arg1, [arg2 ...]] => ...
|
class |
INVOKEVIRTUAL
Invoke instance method; dispatch based on class
..., objectref, [arg1, [arg2 ...]] => ...
|
class |
IOR
Boolean OR int
..., value1, value2 => ..., result
|
class |
IREM
Remainder int
..., value1, value2 => ..., result
|
class |
IRETURN
Return int from method
..., value => [empty]
|
class |
ISHL
Shift left int
..., value1, value2 => ..., result
|
class |
ISHR
Arithmetic shift right int
..., value1, value2 => ..., result
|
class |
ISTORE
Store int into local variable
..., value => ...
|
class |
ISUB
Subtract int
..., value1, value2 => ..., result
|
class |
IUSHR
Logical shift right int
..., value1, value2 => ..., result
|
class |
IXOR
Boolean XOR int
..., value1, value2 => ..., result
|
class |
JSR
Jump subroutine
...
|
class |
JSR_W
Jump subroutine (wide insnIndex)
...
|
class |
L2D
Convert long to double
..., value => ..., result
|
class |
L2F
Convert long to float
..., value => ..., result
|
class |
L2I
Convert long to int
..., value => ..., result
|
class |
LADD
Add long
..., value1, value2 => ..., result
|
class |
LALOAD
Load long from array
..., arrayref, index => ..., value
|
class |
LAND
Boolean AND long
..., value1, value2 => ..., result
|
class |
LASTORE
Store into long array
..., arrayref, index, value => ...
|
class |
LCMP
Compare long
..., value1, value2 => ..., result
|
class |
LCONST
Push long constant
...
|
class |
LDC
Push item from runtime constant pool
...
|
class |
LDC_W
Push item from runtime constant pool (wide index)
...
|
class |
LDC2_W
Push long or double from runtime constant pool (wide index)
...
|
class |
LDIV
Divide long
..., value1, value2 => ..., result
|
class |
LLOAD
Load long from local variable
...
|
class |
LMUL
Multiply long
..., value1, value2 => ..., result
|
class |
LNEG
Negate long
..., value => ..., result
|
class |
LocalVariableInstruction
class abstracting instructions that access local variables, to keep
track of slot/varname mapping
|
class |
LockInstruction
common root for MONITORENTER/EXIT
|
class |
LongArrayLoadInstruction
abstraction for long array loads
|
class |
LongArrayStoreInstruction
absraction for long array stores
...
|
class |
LongReturn
common base for DRETURN and LRETURN
|
class |
LOOKUPSWITCH
Access jump table by key match and jump
..., key => ...
|
class |
LOR
Boolean OR long
..., value1, value2 => ..., result
|
class |
LREM
Remainder long
..., value1, value2 => ..., result
|
class |
LRETURN
Return long from method
..., value => [empty]
|
class |
LSHL
Shift left
..., value1, value2 =>..., result
|
class |
LSHR
Arithmetic shift right long
..., value1, value2 =>..., result
|
class |
LSTORE
Store long into local variable
..., value => ...
|
class |
LSUB
Subtract long
..., value1, value2 => ..., result
|
class |
LUSHR
Logical shift right long
..., value1, value2 =>..., result
|
class |
LXOR
Boolean XOR long
..., value1, value2 => ..., result
|
class |
MONITORENTER
Enter monitor for object
..., objectref => ...
|
class |
MONITOREXIT
Exit monitor for object
..., objectref => ...
|
class |
MULTIANEWARRAY
Create new multidimensional array
..., count1, [count2, ...] => ..., arrayref
|
class |
NATIVERETURN
synthetic return instruction for native method invocations, so that
we don't have to do special provisions to copy the caller args in case
a post exec listener wants them.
|
class |
NEW
Create new object
...
|
class |
NEWARRAY
Create new array
..., count => ..., arrayref
|
class |
NewArrayInstruction |
class |
NOP
Do nothing
No change
|
class |
POP
Pop the top operand stack value
..., value => ...
|
class |
POP2
Pop the top two operand slots
..., value2, value1 => ...
|
class |
PUTFIELD
Set field in object
..., objectref, value => ...
|
class |
PUTSTATIC
Set static field in class
..., value => ...
|
class |
RET
Return from subroutine
No change
|
class |
RETURN
Return void from method
...
|
class |
ReturnInstruction
abstraction for the various return instructions
|
class |
RUNSTART
this is an artificial instruction that is automatically prepended to
a run()/main() method call.
|
class |
SALOAD
Load short from array
..., arrayref, index => ..., value
|
class |
SASTORE
Store into short array
..., array, index, value => ...
|
class |
SIPUSH
Push short
...
|
class |
StaticFieldInstruction
class to abstract instructions accessing static fields
|
class |
SWAP
Swap the top two operand stack values
..., value2, value1 => ..., value1, value2
|
class |
SwitchInstruction
common root class for LOOKUPSWITCH and TABLESWITCH insns
<2do> this is inefficient.
|
class |
TABLESWITCH
Access jump table by index and jump
..., index => ...
|
class |
VirtualInvocation
a base class for virtual call instructions
|
class |
WIDE
modifies following insn, no stack manipulation
NOTE: transparently handled by BCEL, we should never receive this
(1):
|
Modifier and Type | Field and Description |
---|---|
protected Instruction |
IfInstruction.target |
Modifier and Type | Method and Description |
---|---|
Instruction |
InstructionFactory.aaload() |
Instruction |
InstructionFactory.aastore() |
Instruction |
InstructionFactory.aconst_null() |
Instruction |
InstructionFactory.aload_0() |
Instruction |
InstructionFactory.aload_1() |
Instruction |
InstructionFactory.aload_2() |
Instruction |
InstructionFactory.aload_3() |
Instruction |
InstructionFactory.aload(int localVarIndex) |
Instruction |
InstructionFactory.anewarray(String clsName) |
Instruction |
InstructionFactory.areturn() |
Instruction |
InstructionFactory.arraylength() |
Instruction |
InstructionFactory.astore_0() |
Instruction |
InstructionFactory.astore_1() |
Instruction |
InstructionFactory.astore_2() |
Instruction |
InstructionFactory.astore_3() |
Instruction |
InstructionFactory.astore(int localVarIndex) |
Instruction |
InstructionFactory.athrow() |
Instruction |
InstructionFactory.baload() |
Instruction |
InstructionFactory.bastore() |
Instruction |
InstructionFactory.bipush(int b) |
Instruction |
InstructionFactory.caload() |
Instruction |
InstructionFactory.castore() |
protected Instruction |
ArrayStoreInstruction.checkArrayStoreException(ThreadInfo ti,
ElementInfo ei) |
protected Instruction |
AASTORE.checkArrayStoreException(ThreadInfo ti,
ElementInfo ei) |
Instruction |
InstructionFactory.checkcast(String clsName) |
Instruction |
InstructionFactory.d2f() |
Instruction |
InstructionFactory.d2i() |
Instruction |
InstructionFactory.d2l() |
Instruction |
InstructionFactory.dadd() |
Instruction |
InstructionFactory.daload() |
Instruction |
InstructionFactory.dastore() |
Instruction |
InstructionFactory.dcmpg() |
Instruction |
InstructionFactory.dcmpl() |
Instruction |
InstructionFactory.dconst_0() |
Instruction |
InstructionFactory.dconst_1() |
Instruction |
InstructionFactory.ddiv() |
Instruction |
InstructionFactory.directcallreturn() |
Instruction |
InstructionFactory.dload_0() |
Instruction |
InstructionFactory.dload_1() |
Instruction |
InstructionFactory.dload_2() |
Instruction |
InstructionFactory.dload_3() |
Instruction |
InstructionFactory.dload(int localVarIndex) |
Instruction |
InstructionFactory.dmul() |
Instruction |
InstructionFactory.dneg() |
Instruction |
InstructionFactory.drem() |
Instruction |
InstructionFactory.dreturn() |
Instruction |
InstructionFactory.dstore_0() |
Instruction |
InstructionFactory.dstore_1() |
Instruction |
InstructionFactory.dstore_2() |
Instruction |
InstructionFactory.dstore_3() |
Instruction |
InstructionFactory.dstore(int localVarIndex) |
Instruction |
InstructionFactory.dsub() |
Instruction |
InstructionFactory.dup_x1() |
Instruction |
InstructionFactory.dup_x2() |
Instruction |
InstructionFactory.dup() |
Instruction |
InstructionFactory.dup2_x1() |
Instruction |
InstructionFactory.dup2_x2() |
Instruction |
InstructionFactory.dup2() |
Instruction |
LDC.execute(ThreadInfo ti) |
Instruction |
I2F.execute(ThreadInfo ti) |
Instruction |
WIDE.execute(ThreadInfo ti) |
Instruction |
PUTFIELD.execute(ThreadInfo ti) |
Instruction |
DDIV.execute(ThreadInfo ti) |
Instruction |
IADD.execute(ThreadInfo ti) |
Instruction |
ASTORE.execute(ThreadInfo ti) |
Instruction |
DREM.execute(ThreadInfo ti) |
Instruction |
ICONST.execute(ThreadInfo ti) |
Instruction |
FMUL.execute(ThreadInfo ti) |
Instruction |
L2D.execute(ThreadInfo ti) |
Instruction |
FSTORE.execute(ThreadInfo ti) |
Instruction |
LSHR.execute(ThreadInfo ti) |
Instruction |
IOR.execute(ThreadInfo ti) |
Instruction |
ALOAD.execute(ThreadInfo ti) |
Instruction |
FADD.execute(ThreadInfo ti) |
Instruction |
I2S.execute(ThreadInfo ti) |
Instruction |
FREM.execute(ThreadInfo ti) |
Instruction |
L2F.execute(ThreadInfo ti) |
Instruction |
JSR_W.execute(ThreadInfo ti) |
Instruction |
DoubleCompareInstruction.execute(ThreadInfo ti) |
Instruction |
I2B.execute(ThreadInfo ti) |
Instruction |
IREM.execute(ThreadInfo ti) |
Instruction |
POP.execute(ThreadInfo ti) |
Instruction |
L2I.execute(ThreadInfo ti) |
Instruction |
NEW.execute(ThreadInfo ti) |
Instruction |
ISUB.execute(ThreadInfo ti) |
Instruction |
GETSTATIC.execute(ThreadInfo ti) |
Instruction |
DUP2.execute(ThreadInfo ti) |
Instruction |
DCONST.execute(ThreadInfo ti) |
Instruction |
EXECUTENATIVE.execute(ThreadInfo ti) |
Instruction |
MONITORENTER.execute(ThreadInfo ti) |
Instruction |
I2L.execute(ThreadInfo ti) |
Instruction |
I2C.execute(ThreadInfo ti) |
Instruction |
LLOAD.execute(ThreadInfo ti) |
Instruction |
PUTSTATIC.execute(ThreadInfo ti) |
Instruction |
LXOR.execute(ThreadInfo ti) |
Instruction |
DUP2_X1.execute(ThreadInfo ti) |
Instruction |
I2D.execute(ThreadInfo ti) |
Instruction |
DNEG.execute(ThreadInfo ti) |
Instruction |
VirtualInvocation.execute(ThreadInfo ti) |
Instruction |
NOP.execute(ThreadInfo th) |
Instruction |
LSTORE.execute(ThreadInfo ti) |
Instruction |
LOR.execute(ThreadInfo ti) |
Instruction |
FDIV.execute(ThreadInfo ti) |
Instruction |
FCMPL.execute(ThreadInfo ti) |
Instruction |
IAND.execute(ThreadInfo ti) |
Instruction |
INEG.execute(ThreadInfo ti) |
Instruction |
IfInstruction.execute(ThreadInfo ti) |
Instruction |
RET.execute(ThreadInfo ti) |
Instruction |
LDC2_W.execute(ThreadInfo ti) |
Instruction |
NEWARRAY.execute(ThreadInfo ti) |
Instruction |
RETURN.execute(ThreadInfo ti) |
Instruction |
POP2.execute(ThreadInfo ti) |
Instruction |
MONITOREXIT.execute(ThreadInfo ti) |
Instruction |
ILOAD.execute(ThreadInfo ti) |
Instruction |
LCMP.execute(ThreadInfo ti) |
Instruction |
DUP.execute(ThreadInfo th) |
Instruction |
DSUB.execute(ThreadInfo ti) |
Instruction |
SIPUSH.execute(ThreadInfo ti) |
Instruction |
ARRAYLENGTH.execute(ThreadInfo ti) |
Instruction |
ANEWARRAY.execute(ThreadInfo ti) |
Instruction |
D2F.execute(ThreadInfo ti) |
Instruction |
LSHL.execute(ThreadInfo ti) |
Instruction |
SwitchInstruction.execute(ThreadInfo ti) |
Instruction |
INSTANCEOF.execute(ThreadInfo ti) |
Instruction |
NATIVERETURN.execute(ThreadInfo ti) |
Instruction |
DADD.execute(ThreadInfo ti) |
Instruction |
ISHL.execute(ThreadInfo ti) |
Instruction |
DIRECTCALLRETURN.execute(ThreadInfo ti) |
Instruction |
D2L.execute(ThreadInfo ti) |
Instruction |
LMUL.execute(ThreadInfo ti) |
Instruction |
F2I.execute(ThreadInfo ti) |
Instruction |
ISTORE.execute(ThreadInfo ti) |
Instruction |
FCMPG.execute(ThreadInfo ti) |
Instruction |
FNEG.execute(ThreadInfo ti) |
Instruction |
D2I.execute(ThreadInfo ti) |
Instruction |
SWAP.execute(ThreadInfo ti) |
Instruction |
LADD.execute(ThreadInfo ti) |
Instruction |
IINC.execute(ThreadInfo ti) |
Instruction |
IXOR.execute(ThreadInfo ti) |
Instruction |
ReturnInstruction.execute(ThreadInfo ti) |
Instruction |
LAND.execute(ThreadInfo ti) |
Instruction |
ArrayLoadInstruction.execute(ThreadInfo ti) |
Instruction |
LREM.execute(ThreadInfo ti) |
Instruction |
DUP_X2.execute(ThreadInfo ti) |
Instruction |
INVOKECLINIT.execute(ThreadInfo ti) |
Instruction |
BIPUSH.execute(ThreadInfo ti) |
Instruction |
CHECKCAST.execute(ThreadInfo ti) |
Instruction |
FLOAD.execute(ThreadInfo ti) |
Instruction |
F2D.execute(ThreadInfo ti) |
Instruction |
DSTORE.execute(ThreadInfo ti) |
Instruction |
LSUB.execute(ThreadInfo ti) |
Instruction |
IUSHR.execute(ThreadInfo ti) |
Instruction |
DLOAD.execute(ThreadInfo ti) |
Instruction |
LNEG.execute(ThreadInfo ti) |
Instruction |
ArrayStoreInstruction.execute(ThreadInfo ti) |
Instruction |
MULTIANEWARRAY.execute(ThreadInfo ti) |
Instruction |
RUNSTART.execute(ThreadInfo ti) |
Instruction |
F2L.execute(ThreadInfo ti) |
Instruction |
GETFIELD.execute(ThreadInfo ti) |
Instruction |
LDIV.execute(ThreadInfo ti) |
Instruction |
INVOKESPECIAL.execute(ThreadInfo ti) |
Instruction |
FSUB.execute(ThreadInfo ti) |
Instruction |
LCONST.execute(ThreadInfo ti) |
Instruction |
LUSHR.execute(ThreadInfo ti) |
Instruction |
IMUL.execute(ThreadInfo ti) |
Instruction |
DMUL.execute(ThreadInfo ti) |
Instruction |
DUP_X1.execute(ThreadInfo ti) |
Instruction |
ISHR.execute(ThreadInfo ti) |
Instruction |
FCONST.execute(ThreadInfo ti) |
Instruction |
JSR.execute(ThreadInfo ti) |
Instruction |
GOTO.execute(ThreadInfo th) |
Instruction |
IDIV.execute(ThreadInfo ti) |
Instruction |
INVOKESTATIC.execute(ThreadInfo ti) |
Instruction |
ATHROW.execute(ThreadInfo ti) |
Instruction |
ACONST_NULL.execute(ThreadInfo ti) |
Instruction |
INVOKECG.execute(ThreadInfo ti) |
Instruction |
DUP2_X2.execute(ThreadInfo ti) |
Instruction |
SwitchInstruction.executeAllBranches(SystemState ss,
KernelState ks,
ThreadInfo ti)
useful for symbolic execution modes
|
protected Instruction |
IfInstruction.executeBothBranches(SystemState ss,
KernelState ks,
ThreadInfo ti)
use this as a delegatee in overridden executes of derived IfInstructions
(e.g.
|
protected Instruction |
TABLESWITCH.executeConditional(ThreadInfo ti) |
protected Instruction |
SwitchInstruction.executeConditional(ThreadInfo ti) |
Instruction |
InstructionFactory.executenative(NativeMethodInfo mi) |
Instruction |
InstructionFactory.f2d() |
Instruction |
InstructionFactory.f2i() |
Instruction |
InstructionFactory.f2l() |
Instruction |
InstructionFactory.fadd() |
Instruction |
InstructionFactory.faload() |
Instruction |
InstructionFactory.fastore() |
Instruction |
InstructionFactory.fcmpg() |
Instruction |
InstructionFactory.fcmpl() |
Instruction |
InstructionFactory.fconst_0() |
Instruction |
InstructionFactory.fconst_1() |
Instruction |
InstructionFactory.fconst_2() |
Instruction |
InstructionFactory.fdiv() |
Instruction |
InstructionFactory.fload_0() |
Instruction |
InstructionFactory.fload_1() |
Instruction |
InstructionFactory.fload_2() |
Instruction |
InstructionFactory.fload_3() |
Instruction |
InstructionFactory.fload(int localVarIndex) |
Instruction |
InstructionFactory.fmul() |
Instruction |
InstructionFactory.fneg() |
Instruction |
InstructionFactory.frem() |
Instruction |
InstructionFactory.freturn() |
Instruction |
InstructionFactory.fstore_0() |
Instruction |
InstructionFactory.fstore_1() |
Instruction |
InstructionFactory.fstore_2() |
Instruction |
InstructionFactory.fstore_3() |
Instruction |
InstructionFactory.fstore(int localVarIndex) |
Instruction |
InstructionFactory.fsub() |
Instruction |
InstructionFactory.getfield(String fieldName,
String clsName,
String fieldDescriptor) |
Instruction |
InstructionFactory.getstatic(String fieldName,
String clsName,
String fieldDescriptor) |
Instruction |
IfInstruction.getTarget() |
Instruction |
GOTO.getTarget() |
Instruction |
InstructionFactory.goto_(int targetPc) |
Instruction |
InstructionFactory.goto_w(int targetPc) |
Instruction |
InstructionFactory.i2b() |
Instruction |
InstructionFactory.i2c() |
Instruction |
InstructionFactory.i2d() |
Instruction |
InstructionFactory.i2f() |
Instruction |
InstructionFactory.i2l() |
Instruction |
InstructionFactory.i2s() |
Instruction |
InstructionFactory.iadd() |
Instruction |
InstructionFactory.iaload() |
Instruction |
InstructionFactory.iand() |
Instruction |
InstructionFactory.iastore() |
Instruction |
InstructionFactory.iconst_0() |
Instruction |
InstructionFactory.iconst_1() |
Instruction |
InstructionFactory.iconst_2() |
Instruction |
InstructionFactory.iconst_3() |
Instruction |
InstructionFactory.iconst_4() |
Instruction |
InstructionFactory.iconst_5() |
Instruction |
InstructionFactory.iconst_m1() |
Instruction |
InstructionFactory.idiv() |
Instruction |
InstructionFactory.if_acmpeq(int targetPc) |
Instruction |
InstructionFactory.if_acmpne(int targetPc) |
Instruction |
InstructionFactory.if_icmpeq(int targetPc) |
Instruction |
InstructionFactory.if_icmpge(int targetPc) |
Instruction |
InstructionFactory.if_icmpgt(int targetPc) |
Instruction |
InstructionFactory.if_icmple(int targetPc) |
Instruction |
InstructionFactory.if_icmplt(int targetPc) |
Instruction |
InstructionFactory.if_icmpne(int targetPc) |
Instruction |
InstructionFactory.ifeq(int targetPc) |
Instruction |
InstructionFactory.ifge(int targetPc) |
Instruction |
InstructionFactory.ifgt(int targetPc) |
Instruction |
InstructionFactory.ifle(int targetPc) |
Instruction |
InstructionFactory.iflt(int targetPc) |
Instruction |
InstructionFactory.ifne(int targetPc) |
Instruction |
InstructionFactory.ifnonnull(int targetPc) |
Instruction |
InstructionFactory.ifnull(int targetPc) |
Instruction |
InstructionFactory.iinc(int localVarIndex,
int incConstant) |
Instruction |
InstructionFactory.iload_0() |
Instruction |
InstructionFactory.iload_1() |
Instruction |
InstructionFactory.iload_2() |
Instruction |
InstructionFactory.iload_3() |
Instruction |
InstructionFactory.iload(int localVarIndex) |
Instruction |
InstructionFactory.imul() |
Instruction |
InstructionFactory.ineg() |
Instruction |
InstructionFactory.instanceof_(String clsName) |
Instruction |
InstructionFactory.invokecg(List<Invocation> invokes) |
Instruction |
InstructionFactory.invokeclinit(ClassInfo ci) |
Instruction |
InstructionFactory.invokeinterface(String clsName,
String methodName,
String methodSignature) |
Instruction |
InstructionFactory.invokespecial(String clsName,
String methodName,
String methodSignature) |
Instruction |
InstructionFactory.invokestatic(String clsName,
String methodName,
String methodSignature) |
Instruction |
InstructionFactory.invokevirtual(String clsName,
String methodName,
String methodSignature) |
Instruction |
InstructionFactory.ior() |
Instruction |
InstructionFactory.irem() |
Instruction |
InstructionFactory.ireturn() |
Instruction |
InstructionFactory.ishl() |
Instruction |
InstructionFactory.ishr() |
Instruction |
InstructionFactory.istore_0() |
Instruction |
InstructionFactory.istore_1() |
Instruction |
InstructionFactory.istore_2() |
Instruction |
InstructionFactory.istore_3() |
Instruction |
InstructionFactory.istore(int localVarIndex) |
Instruction |
InstructionFactory.isub() |
Instruction |
InstructionFactory.iushr() |
Instruction |
InstructionFactory.ixor() |
Instruction |
InstructionFactory.jsr_w(int targetPc) |
Instruction |
InstructionFactory.jsr(int targetPc) |
Instruction |
InstructionFactory.l2d() |
Instruction |
InstructionFactory.l2f() |
Instruction |
InstructionFactory.l2i() |
Instruction |
InstructionFactory.ladd() |
Instruction |
InstructionFactory.laload() |
Instruction |
InstructionFactory.land() |
Instruction |
InstructionFactory.lastore() |
Instruction |
InstructionFactory.lcmp() |
Instruction |
InstructionFactory.lconst_0() |
Instruction |
InstructionFactory.lconst_1() |
Instruction |
InstructionFactory.ldc_w(float v) |
Instruction |
InstructionFactory.ldc_w(int v) |
Instruction |
InstructionFactory.ldc_w(String v,
boolean isClass) |
Instruction |
InstructionFactory.ldc(float v) |
Instruction |
InstructionFactory.ldc(int v) |
Instruction |
InstructionFactory.ldc(String v,
boolean isClass) |
Instruction |
InstructionFactory.ldc2_w(double v) |
Instruction |
InstructionFactory.ldc2_w(long v) |
Instruction |
InstructionFactory.ldiv() |
Instruction |
InstructionFactory.lload_0() |
Instruction |
InstructionFactory.lload_1() |
Instruction |
InstructionFactory.lload_2() |
Instruction |
InstructionFactory.lload_3() |
Instruction |
InstructionFactory.lload(int localVarIndex) |
Instruction |
InstructionFactory.lmul() |
Instruction |
InstructionFactory.lneg() |
Instruction |
InstructionFactory.lookupswitch(int defaultTargetPc,
int nEntries) |
Instruction |
InstructionFactory.lor() |
Instruction |
InstructionFactory.lrem() |
Instruction |
InstructionFactory.lreturn() |
Instruction |
InstructionFactory.lshl() |
Instruction |
InstructionFactory.lshr() |
Instruction |
InstructionFactory.lstore_0() |
Instruction |
InstructionFactory.lstore_1() |
Instruction |
InstructionFactory.lstore_2() |
Instruction |
InstructionFactory.lstore_3() |
Instruction |
InstructionFactory.lstore(int localVarIndex) |
Instruction |
InstructionFactory.lsub() |
Instruction |
InstructionFactory.lushr() |
Instruction |
InstructionFactory.lxor() |
Instruction |
InstructionFactory.monitorenter() |
Instruction |
InstructionFactory.monitorexit() |
Instruction |
InstructionFactory.multianewarray(String clsName,
int dimensions) |
Instruction |
InstructionFactory.nativereturn() |
Instruction |
InstructionFactory.new_(String clsName) |
Instruction |
InstructionFactory.newarray(int typeCode) |
Instruction |
InstructionFactory.nop() |
Instruction |
InstructionFactory.pop() |
Instruction |
InstructionFactory.pop2() |
protected Instruction |
FieldInstruction.put(ThreadInfo ti,
StackFrame frame,
ElementInfo eiFieldOwner) |
protected Instruction |
FieldInstruction.put1(ThreadInfo ti,
StackFrame frame,
ElementInfo eiFieldOwner) |
protected Instruction |
FieldInstruction.put2(ThreadInfo ti,
StackFrame frame,
ElementInfo eiFieldOwner) |
Instruction |
InstructionFactory.putfield(String fieldName,
String clsName,
String fieldDescriptor) |
Instruction |
InstructionFactory.putstatic(String fieldName,
String clsName,
String fieldDescriptor) |
Instruction |
InstructionFactory.ret(int localVarIndex) |
Instruction |
InstructionFactory.return_() |
Instruction |
InstructionFactory.runstart(MethodInfo miRun) |
Instruction |
InstructionFactory.saload() |
Instruction |
InstructionFactory.sastore() |
Instruction |
InstructionFactory.sipush(int val) |
Instruction |
InstructionFactory.swap() |
Instruction |
InstructionFactory.tableswitch(int defaultTargetPc,
int low,
int high) |
Instruction |
StaticFieldInstruction.typeSafeClone(MethodInfo mi) |
Instruction |
VirtualInvocation.typeSafeClone(MethodInfo clonedMethod) |
Instruction |
IfInstruction.typeSafeClone(MethodInfo mi) |
Instruction |
InvokeInstruction.typeSafeClone(MethodInfo mi) |
Instruction |
GOTO.typeSafeClone(MethodInfo mi) |
Instruction |
INVOKESTATIC.typeSafeClone(MethodInfo mi) |
Instruction |
InstructionFactory.wide() |
Modifier and Type | Method and Description |
---|---|
void |
InstructionVisitor.visit(Instruction ins) |
void |
InstructionVisitorAdapter.visit(Instruction ins) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
OOMEInjector.checkCallerForOOM(StackFrame frame,
Instruction insn) |
void |
CGRemover.choiceGeneratorRegistered(VM vm,
ChoiceGenerator<?> nextCG,
ThreadInfo ti,
Instruction executedInsn) |
void |
AssertionProperty.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insn) |
void |
VarRecorder.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
StackTracker.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
ChoiceSelector.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
OOMEInjector.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
ExceptionInjector.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
MethodTracker.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
StopWatchFuzzer.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
PreciseRaceDetector.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
void |
Perturbator.executeInstruction(VM vm,
ThreadInfo ti,
Instruction insnToExecute) |
protected String |
AssertionProperty.getMessage(String details,
Instruction insn) |
void |
MethodAnalyzer.instructionExecuted(VM vm,
ThreadInfo thread,
Instruction nextInsn,
Instruction executedInsn) |
void |
InsnCounter.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
IdleFilter.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
VarRecorder.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
CGMonitor.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
CoverageAnalyzer.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
ObjectTracker.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
ReferenceLocator.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
VarTracker.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
OOMEInjector.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction insn,
Instruction executedInsn) |
void |
ExecTracker.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
BudgetChecker.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
CallMonitor.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
NumericValueChecker.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
SimpleIdleFilter.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
StopWatchFuzzer.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
TraceStorer.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
void |
Perturbator.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
protected boolean |
Perturbator.isMatchingInstructionLocation(Perturbator.Perturbation p,
Instruction insn) |
boolean |
Perturbator.isMethodWatched(Instruction insn,
MethodInfo mi) |
protected boolean |
Perturbator.isRelevantCallLocation(Instruction invokeInsn,
Perturbator.Perturbation p) |
Modifier and Type | Method and Description |
---|---|
void |
Statistics.instructionExecuted(VM vm,
ThreadInfo ti,
Instruction nextInsn,
Instruction executedInsn) |
Modifier and Type | Field and Description |
---|---|
protected Instruction[] |
PreciseAllocationContext.cc |
protected Instruction[] |
MethodInfo.code
Instructions associated with the method
|
protected Instruction |
ChoiceGeneratorBase.insn |
protected Instruction |
ThreadInfo.nextPc
the next insn to enter (null prior to execution)
|
protected Instruction |
StackFrame.pc |
Modifier and Type | Method and Description |
---|---|
protected Instruction |
ThreadInfo.callUncaughtHandler(ExceptionInfo xi)
this explicitly models the standard ThreadGroup.uncaughtException(), but we want
to save us a roundtrip if that's the only handler we got.
|
protected Instruction |
ThreadInfo.callUncaughtHandler(ExceptionInfo xi,
int handlerRef,
String id) |
Instruction |
ThreadInfo.createAndThrowException(ClassInfo ci,
String details)
Creates and throws an exception.
|
Instruction |
ThreadInfo.createAndThrowException(String cname)
Creates an exception and throws it.
|
Instruction |
ThreadInfo.createAndThrowException(String cname,
String details) |
abstract Instruction |
Instruction.execute(ThreadInfo ti)
this is the real workhorse
returns next instruction to enter in this thread
<2do> it's unfortunate we roll every side effect into this method, because
it diminishes the value of the 'executeInstruction' notification: all
insns that require some sort of late binding (InvokeVirtual, GetField, ..)
are not yet fully analyzable (e.g.
|
Instruction |
ThreadInfo.executeInstruction()
Execute next instruction.
|
Instruction |
ThreadInfo.executeInstructionHidden()
enter instruction hidden from any listeners, and do not
record it in the path
|
Instruction |
NativeMethodInfo.executeNative(ThreadInfo ti) |
Instruction |
MethodInfo.getFirstInsn() |
Instruction |
ChoiceGeneratorBase.getInsn() |
Instruction |
ChoiceGenerator.getInsn() |
Instruction |
MJIEnv.getInstruction() |
Instruction |
VM.getInstruction() |
Instruction |
Step.getInstruction() |
Instruction |
ArrayIndexOutOfBoundsExecutiveException.getInstruction() |
Instruction |
MethodInfo.getInstruction(int i)
Returns a specific instruction.
|
Instruction |
MethodInfo.getInstructionAt(int position)
Returns the instruction at a certain position.
|
Instruction[] |
MethodInfo.getInstructions()
Returns the instructions of the method.
|
Instruction[] |
MethodInfo.getInstructionsForLine(int line) |
Instruction[] |
MethodInfo.getInstructionsForLineInterval(int l1,
int l2) |
Instruction |
MethodInfo.getLastInsn() |
Instruction[] |
ClassInfo.getMatchingInstructions(LocationSpec lspec) |
Instruction[] |
MethodInfo.getMatchingInstructions(LocationSpec lspec) |
Instruction |
Instruction.getNext()
this returns the instruction at the following code insnIndex within the same
method, which might or might not be the next one to enter (branches, overlay calls etc.).
|
Instruction |
Instruction.getNext(ThreadInfo ti)
this is returning the next Instruction to enter, to be called to obtain
the return value of enter() if this is not a branch insn
Be aware of that we might have had exceptions caused by our execution
(-> lower frame), or we might have had overlaid calls (-> higher frame),
i.e.
|
Instruction |
ThreadInfo.getNextPC() |
Instruction |
ThreadInfo.getPC()
Returns the program counter of the top stack frame.
|
Instruction |
StackFrame.getPC() |
Instruction |
Instruction.getPrev() |
Instruction |
VM.handleException(ThreadInfo ti,
int xObjRef)
this is here so that we can intercept it in subclassed VMs
|
Instruction |
ThreadInfo.throwException(int exceptionObjRef)
unwind stack frames until we find a matching handler for the exception object
|
Instruction |
Instruction.typeSafeClone(MethodInfo mi)
this is overridden by any Instruction that use a cache for class or
method to provide a type safe cloning
|
Modifier and Type | Method and Description |
---|---|
void |
VMListener.choiceGeneratorRegistered(VM vm,
ChoiceGenerator<?> nextCG,
ThreadInfo currentThread,
Instruction executedInstruction)
next ChoiceGenerator was registered, which means this is the end of the current transition
the reason why we have this in addition to the choiceGeneratorSet is that listeners
can reset the registered CG and so force the current transition to continue (although the
listener in this case has to make sure the operand stack is in a consistent state for
continued execution because there might be a bottom half of an Instruction.execute() missing)
|
void |
ConstInsnPathTime.choiceGeneratorRegistered(VM vm,
ChoiceGenerator<?> nextCG,
ThreadInfo ti,
Instruction executedInsn) |
void |
VMListener.executeInstruction(VM vm,
ThreadInfo currentThread,
Instruction instructionToExecute)
VM is about to execute the next instruction
|
ExceptionHandler |
MethodInfo.getHandlerFor(ClassInfo ciException,
Instruction insn) |
<T extends ChoiceGenerator<?>> |
SystemState.getInsnChoiceGeneratorOfType(Class<T> cgType,
Instruction insn,
ChoiceGenerator<?> cgPrev) |
int |
MethodInfo.getLineNumber(Instruction pc)
Returns the line number for a given position.
|
int |
NativeMethodInfo.getLineNumber(Instruction pc) |
StackFrame |
ThreadInfo.getStackFrameExecuting(Instruction insn,
int offset)
note that we don't provide a modifiable version of this.
|
void |
VMListener.instructionExecuted(VM vm,
ThreadInfo currentThread,
Instruction nextInstruction,
Instruction executedInstruction)
VM has executed the next instruction
(can be used to analyze branches, monitor PUTFIELD / GETFIELD and
INVOKExx / RETURN instructions)
|
protected void |
VM.notifyExecuteInstruction(ThreadInfo ti,
Instruction insn) |
protected void |
VM.notifyInstructionExecuted(ThreadInfo ti,
Instruction insn,
Instruction nextInsn) |
void |
MethodInfo.setCode(Instruction[] code) |
void |
ChoiceGeneratorBase.setInsn(Instruction insn) |
void |
ChoiceGenerator.setInsn(Instruction insn) |
boolean |
ThreadInfo.setNextPC(Instruction insn)
explicitly set the next insn to enter.
|
void |
ThreadInfo.setPC(Instruction pc)
Sets the program counter of the top stack frame.
|
void |
StackFrame.setPC(Instruction newpc) |
void |
ThreadInfo.skipInstruction(Instruction nextInsn)
skip the next bytecode.
|
Constructor and Description |
---|
ArrayIndexOutOfBoundsExecutiveException(Instruction i) |
Step(Instruction insn) |