public class BytecodeAnalyzer
extends org.objectweb.asm.tree.analysis.Analyzer
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, 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, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8| Constructor and Description |
|---|
BytecodeAnalyzer()
Constructor for BytecodeAnalyzer.
|
| Modifier and Type | Method and Description |
|---|---|
CFGFrame |
analyze(ClassLoader classLoader,
String owner,
String method,
org.objectweb.asm.tree.MethodNode node)
Analyzes the method corresponding to the given Strings and initializes
the CFGGenerator and thus the BytecodeInstructionPool for the given
method in the given class.
|
protected void |
newControlFlowEdge(int src,
int dst)
Called for each non-exceptional cfg edge
|
protected boolean |
newControlFlowExceptionEdge(int src,
int dst)
We also need to keep track of exceptional edges - they are also branches
|
protected org.objectweb.asm.tree.analysis.Frame |
newFrame(org.objectweb.asm.tree.analysis.Frame src) |
protected org.objectweb.asm.tree.analysis.Frame |
newFrame(int nLocals,
int nStack) |
CFGGenerator |
retrieveCFGGenerator()
After running analyze() this method yields the filled CFGGenerator for
further processing of the gathered information from analyze() within the
ByteCode representation of EvoSuite
|
public CFGFrame analyze(ClassLoader classLoader, String owner, String method, org.objectweb.asm.tree.MethodNode node) throws org.objectweb.asm.tree.analysis.AnalyzerException
public CFGGenerator retrieveCFGGenerator()
CFGGenerator object.protected void newControlFlowEdge(int src,
int dst)
newControlFlowEdge in class org.objectweb.asm.tree.analysis.Analyzerprotected boolean newControlFlowExceptionEdge(int src,
int dst)
newControlFlowExceptionEdge in class org.objectweb.asm.tree.analysis.Analyzerprotected org.objectweb.asm.tree.analysis.Frame newFrame(int nLocals,
int nStack)
newFrame in class org.objectweb.asm.tree.analysis.Analyzerprotected org.objectweb.asm.tree.analysis.Frame newFrame(org.objectweb.asm.tree.analysis.Frame src)
newFrame in class org.objectweb.asm.tree.analysis.AnalyzerCopyright © 2010–2017 EvoSuite. All rights reserved.