Package com.ibm.wala.dalvik.classLoader
Class DexCFG
java.lang.Object
com.ibm.wala.cfg.AbstractCFG<Instruction,DexCFG.BasicBlock>
com.ibm.wala.dalvik.classLoader.DexCFG
- All Implemented Interfaces:
com.ibm.wala.cfg.BytecodeCFG,com.ibm.wala.cfg.ControlFlowGraph<Instruction,,DexCFG.BasicBlock> com.ibm.wala.cfg.MinimalCFG<DexCFG.BasicBlock>,com.ibm.wala.shrike.shrikeBT.Constants,com.ibm.wala.util.graph.EdgeManager<DexCFG.BasicBlock>,com.ibm.wala.util.graph.Graph<DexCFG.BasicBlock>,com.ibm.wala.util.graph.NodeManager<DexCFG.BasicBlock>,com.ibm.wala.util.graph.NumberedEdgeManager<DexCFG.BasicBlock>,com.ibm.wala.util.graph.NumberedGraph<DexCFG.BasicBlock>,com.ibm.wala.util.graph.NumberedNodeManager<DexCFG.BasicBlock>,Iterable<DexCFG.BasicBlock>
public class DexCFG
extends com.ibm.wala.cfg.AbstractCFG<Instruction,DexCFG.BasicBlock>
implements com.ibm.wala.cfg.BytecodeCFG
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from interface com.ibm.wala.shrike.shrikeBT.Constants
ACC_ABSTRACT, ACC_ANNOTATION, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MODULE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_InvokeDynamic, CONSTANT_Long, CONSTANT_MethodHandle, CONSTANT_MethodRef, CONSTANT_MethodType, CONSTANT_NameAndType, CONSTANT_String, CONSTANT_Utf8, indexedTypes, indexedTypes_T, MAYBE, NO, OP_aaload, OP_aastore, OP_aconst_null, OP_aload, OP_aload_0, OP_aload_1, OP_aload_2, OP_aload_3, OP_anewarray, OP_areturn, OP_arraylength, OP_astore, OP_astore_0, OP_astore_1, OP_astore_2, OP_astore_3, OP_athrow, OP_baload, OP_bastore, OP_bipush, OP_caload, OP_castore, OP_checkcast, OP_d2f, OP_d2i, OP_d2l, OP_dadd, OP_daload, OP_dastore, OP_dcmpg, OP_dcmpl, OP_dconst_0, OP_dconst_1, OP_ddiv, OP_dload, OP_dload_0, OP_dload_1, OP_dload_2, OP_dload_3, OP_dmul, OP_dneg, OP_drem, OP_dreturn, OP_dstore, OP_dstore_0, OP_dstore_1, OP_dstore_2, OP_dstore_3, OP_dsub, OP_dup, OP_dup_x1, OP_dup_x2, OP_dup2, OP_dup2_x1, OP_dup2_x2, OP_f2d, OP_f2i, OP_f2l, OP_fadd, OP_faload, OP_fastore, OP_fcmpg, OP_fcmpl, OP_fconst_0, OP_fconst_1, OP_fconst_2, OP_fdiv, OP_fload, OP_fload_0, OP_fload_1, OP_fload_2, OP_fload_3, OP_fmul, OP_fneg, OP_frem, OP_freturn, OP_fstore, OP_fstore_0, OP_fstore_1, OP_fstore_2, OP_fstore_3, OP_fsub, OP_getfield, OP_getstatic, OP_goto, OP_goto_w, OP_i2b, OP_i2c, OP_i2d, OP_i2f, OP_i2l, OP_i2s, OP_iadd, OP_iaload, OP_iand, OP_iastore, OP_iconst_0, OP_iconst_1, OP_iconst_2, OP_iconst_3, OP_iconst_4, OP_iconst_5, OP_iconst_m1, OP_idiv, OP_if_acmpeq, OP_if_acmpne, OP_if_icmpeq, OP_if_icmpge, OP_if_icmpgt, OP_if_icmple, OP_if_icmplt, OP_if_icmpne, OP_ifeq, OP_ifge, OP_ifgt, OP_ifle, OP_iflt, OP_ifne, OP_ifnonnull, OP_ifnull, OP_iinc, OP_iload, OP_iload_0, OP_iload_1, OP_iload_2, OP_iload_3, OP_imul, OP_ineg, OP_instanceof, OP_invokedynamic, OP_invokeinterface, OP_invokespecial, OP_invokestatic, OP_invokevirtual, OP_ior, OP_irem, OP_ireturn, OP_ishl, OP_ishr, OP_istore, OP_istore_0, OP_istore_1, OP_istore_2, OP_istore_3, OP_isub, OP_iushr, OP_ixor, OP_jsr, OP_jsr_w, OP_l2d, OP_l2f, OP_l2i, OP_ladd, OP_laload, OP_land, OP_lastore, OP_lcmp, OP_lconst_0, OP_lconst_1, OP_ldc, OP_ldc_w, OP_ldc2_w, OP_ldiv, OP_lload, OP_lload_0, OP_lload_1, OP_lload_2, OP_lload_3, OP_lmul, OP_lneg, OP_lookupswitch, OP_lor, OP_lrem, OP_lreturn, OP_lshl, OP_lshr, OP_lstore, OP_lstore_0, OP_lstore_1, OP_lstore_2, OP_lstore_3, OP_lsub, OP_lushr, OP_lxor, OP_monitorenter, OP_monitorexit, OP_multianewarray, OP_new, OP_newarray, OP_nop, OP_pop, OP_pop2, OP_putfield, OP_putstatic, OP_ret, OP_return, OP_saload, OP_sastore, OP_sipush, OP_swap, OP_tableswitch, OP_wide, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TYPE_boolean, TYPE_boolean_index, TYPE_byte, TYPE_byte_index, TYPE_char, TYPE_char_index, TYPE_Class, TYPE_double, TYPE_double_index, TYPE_Error, TYPE_Exception, TYPE_float, TYPE_float_index, TYPE_int, TYPE_int_index, TYPE_long, TYPE_long_index, TYPE_MethodHandle, TYPE_MethodType, TYPE_null, TYPE_Object, TYPE_Object_index, TYPE_RuntimeException, TYPE_short, TYPE_short_index, TYPE_String, TYPE_Throwable, TYPE_unknown, TYPE_void, YES -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDexCFG(DexIMethod method, com.ibm.wala.ipa.callgraph.Context context) -
Method Summary
Modifier and TypeMethodDescriptionbooleangetBlockForInstruction(int index) Return an instruction's basic block in the CFG given the index of the instruction in the CFG's instruction array.Set<com.ibm.wala.shrike.shrikeBT.ExceptionHandler>intintintgetProgramCounter(int index) static intinthashCode()toString()Methods inherited from class com.ibm.wala.cfg.AbstractCFG
addEdge, addExceptionalEdge, addNode, addNormalEdge, containsNode, entry, exit, getCatchBlocks, getExceptionalPredecessors, getExceptionalSuccessors, getExceptionalToExit, getMaxNumber, getMethod, getNode, getNormalPredecessors, getNormalSuccessors, getNormalToExit, getNumber, getNumberOfExceptionalIn, getNumberOfExceptionalOut, getNumberOfExceptionalOut, getNumberOfNodes, getNumberOfNormalIn, getNumberOfNormalOut, getPredNodeCount, getPredNodeNumbers, getPredNodes, getSuccNodeCount, getSuccNodeNumbers, getSuccNodes, hasEdge, hasExceptionalEdge, hasNormalEdge, init, isCatchBlock, iterateNodes, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, setCatchBlock, streamMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
DexCFG
protected DexCFG(DexIMethod method, com.ibm.wala.ipa.callgraph.Context context) throws IllegalArgumentException - Throws:
IllegalArgumentException
-
-
Method Details
-
getDexMethod
-
getTotalEdges
public static int getTotalEdges() -
hashCode
public int hashCode()- Specified by:
hashCodein classcom.ibm.wala.cfg.AbstractCFG<Instruction,DexCFG.BasicBlock>
-
equals
- Specified by:
equalsin classcom.ibm.wala.cfg.AbstractCFG<Instruction,DexCFG.BasicBlock>
-
getInstructions
- Specified by:
getInstructionsin interfacecom.ibm.wala.cfg.ControlFlowGraph<Instruction,DexCFG.BasicBlock>
-
getBlockForInstruction
Return an instruction's basic block in the CFG given the index of the instruction in the CFG's instruction array.- Specified by:
getBlockForInstructionin interfacecom.ibm.wala.cfg.ControlFlowGraph<Instruction,DexCFG.BasicBlock>
-
toString
- Overrides:
toStringin classcom.ibm.wala.cfg.AbstractCFG<Instruction,DexCFG.BasicBlock>
-
getMaxStackHeight
public int getMaxStackHeight() -
getMaxLocals
public int getMaxLocals() -
getExceptionHandlers
- Specified by:
getExceptionHandlersin interfacecom.ibm.wala.cfg.BytecodeCFG
-
getProgramCounter
public int getProgramCounter(int index) - Specified by:
getProgramCounterin interfacecom.ibm.wala.cfg.ControlFlowGraph<Instruction,DexCFG.BasicBlock> - See Also:
-
ControlFlowGraph.getProgramCounter(int)
-