public class DexCodeNode extends DexCodeVisitor
| Modifier and Type | Field and Description |
|---|---|
DexDebugNode |
debugNode |
java.util.List<DexStmtNode> |
stmts |
int |
totalRegister |
java.util.List<TryCatchNode> |
tryStmts |
visitor| Constructor and Description |
|---|
DexCodeNode() |
DexCodeNode(DexCodeVisitor visitor) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(DexCodeVisitor v) |
void |
accept(DexMethodVisitor v) |
protected void |
add(DexStmtNode stmt) |
void |
visitConstStmt(Op op,
int ra,
java.lang.Object value)
CONST * CONST_WIDE * CONST_STRING * CONST_CLASS *
|
DexDebugVisitor |
visitDebug() |
void |
visitFieldStmt(Op op,
int a,
int b,
Field field)
OP_IGETX a,b field
OP_IPUTX a,b field
OP_SGETX a field
OP_SPUTX a field
|
void |
visitFillArrayDataStmt(Op op,
int ra,
java.lang.Object array) |
void |
visitFilledNewArrayStmt(Op op,
int[] args,
java.lang.String type)
OP_FILLED_NEW_ARRAY
|
void |
visitJumpStmt(Op op,
int a,
int b,
DexLabel label)
OP_IF_EQ
OP_IF_NE
OP_IF_LT
OP_IF_GE
OP_IF_GT
OP_IF_LE
OP_GOTO
OP_IF_EQZ
OP_IF_NEZ
OP_IF_LTZ
OP_IF_GEZ
OP_IF_GTZ
OP_IF_LEZ
|
void |
visitLabel(DexLabel label) |
void |
visitMethodStmt(Op op,
int[] args,
Method method)
OP_INVOKE_VIRTUAL
OP_INVOKE_SUPER
OP_INVOKE_DIRECT
OP_INVOKE_STATIC
OP_INVOKE_INTERFACE
|
void |
visitMethodStmt(Op op,
int[] args,
Method bsm,
Proto proto)
OP_INVOKE_POLYMORPHIC
|
void |
visitMethodStmt(Op op,
int[] args,
java.lang.String name,
Proto proto,
MethodHandle bsm,
java.lang.Object... bsmArgs)
OP_INVOKE_CUSTOM
|
void |
visitPackedSwitchStmt(Op op,
int aA,
int first_case,
DexLabel[] labels) |
void |
visitRegister(int total) |
void |
visitSparseSwitchStmt(Op op,
int ra,
int[] cases,
DexLabel[] labels) |
void |
visitStmt0R(Op op)
|
void |
visitStmt1R(Op op,
int reg)
OP_RETURN_X
OP_THROW_X
OP_MONITOR_ENTER
OP_MONITOR_EXIT
OP_MOVE_RESULT_X
OP_MOVE_EXCEPTION_X
|
void |
visitStmt2R(Op op,
int a,
int b)
OP_MOVE*
a = a X b
OP_ARRAY_LENGTH
a=Xb
X_TO_Y
|
void |
visitStmt2R1N(Op op,
int distReg,
int srcReg,
int content)
OP_X_INT_LIT8
|
void |
visitStmt3R(Op op,
int a,
int b,
int c)
OP_ADD
OP_SUB
OP_MUL
OP_DIV
OP_REM
OP_AND
OP_OR
OP_XOR
OP_SHL
OP_SHR
OP_USHR
OP_CMPL
OP_CMPG
OP_CMP
OP_AGETX
OP_APUTX
|
void |
visitTryCatch(DexLabel start,
DexLabel end,
DexLabel[] handler,
java.lang.String[] type) |
void |
visitTypeStmt(Op op,
int a,
int b,
java.lang.String type)
OP_INSTANCE_OF
OP_NEW_ARRAY
OP_CHECK_CAST
OP_NEW_INSTANCE
|
visitEndpublic java.util.List<DexStmtNode> stmts
public java.util.List<TryCatchNode> tryStmts
public DexDebugNode debugNode
public int totalRegister
public DexCodeNode()
public DexCodeNode(DexCodeVisitor visitor)
public void accept(DexCodeVisitor v)
public void accept(DexMethodVisitor v)
protected void add(DexStmtNode stmt)
public void visitConstStmt(Op op, int ra, java.lang.Object value)
DexCodeVisitorCONST * CONST_WIDE * CONST_STRING * CONST_CLASS *
visitConstStmt in class DexCodeVisitorvalue - int/long/typepublic void visitFillArrayDataStmt(Op op, int ra, java.lang.Object array)
visitFillArrayDataStmt in class DexCodeVisitorpublic void visitFieldStmt(Op op, int a, int b, Field field)
DexCodeVisitorOP_IGETX a,b field OP_IPUTX a,b field OP_SGETX a field OP_SPUTX a field
visitFieldStmt in class DexCodeVisitorpublic void visitFilledNewArrayStmt(Op op, int[] args, java.lang.String type)
DexCodeVisitorOP_FILLED_NEW_ARRAY
visitFilledNewArrayStmt in class DexCodeVisitorpublic void visitJumpStmt(Op op, int a, int b, DexLabel label)
DexCodeVisitorOP_IF_EQ OP_IF_NE OP_IF_LT OP_IF_GE OP_IF_GT OP_IF_LE OP_GOTO OP_IF_EQZ OP_IF_NEZ OP_IF_LTZ OP_IF_GEZ OP_IF_GTZ OP_IF_LEZ
visitJumpStmt in class DexCodeVisitorpublic void visitLabel(DexLabel label)
visitLabel in class DexCodeVisitorpublic void visitMethodStmt(Op op, int[] args, Method method)
DexCodeVisitorOP_INVOKE_VIRTUAL OP_INVOKE_SUPER OP_INVOKE_DIRECT OP_INVOKE_STATIC OP_INVOKE_INTERFACE
visitMethodStmt in class DexCodeVisitorpublic void visitMethodStmt(Op op, int[] args, java.lang.String name, Proto proto, MethodHandle bsm, java.lang.Object... bsmArgs)
DexCodeVisitorOP_INVOKE_CUSTOM
visitMethodStmt in class DexCodeVisitorpublic void visitMethodStmt(Op op, int[] args, Method bsm, Proto proto)
DexCodeVisitorOP_INVOKE_POLYMORPHIC
visitMethodStmt in class DexCodeVisitorpublic void visitPackedSwitchStmt(Op op, int aA, int first_case, DexLabel[] labels)
visitPackedSwitchStmt in class DexCodeVisitorpublic void visitRegister(int total)
visitRegister in class DexCodeVisitorpublic void visitSparseSwitchStmt(Op op, int ra, int[] cases, DexLabel[] labels)
visitSparseSwitchStmt in class DexCodeVisitorpublic void visitStmt0R(Op op)
DexCodeVisitorvisitStmt0R in class DexCodeVisitorpublic void visitStmt1R(Op op, int reg)
DexCodeVisitorOP_RETURN_X OP_THROW_X OP_MONITOR_ENTER OP_MONITOR_EXIT OP_MOVE_RESULT_X OP_MOVE_EXCEPTION_X
visitStmt1R in class DexCodeVisitorpublic void visitStmt2R(Op op, int a, int b)
DexCodeVisitorOP_MOVE* a = a X b OP_ARRAY_LENGTH a=Xb X_TO_Y
visitStmt2R in class DexCodeVisitorpublic void visitStmt2R1N(Op op, int distReg, int srcReg, int content)
DexCodeVisitorOP_X_INT_LIT8
visitStmt2R1N in class DexCodeVisitorpublic void visitStmt3R(Op op, int a, int b, int c)
DexCodeVisitorOP_ADD OP_SUB OP_MUL OP_DIV OP_REM OP_AND OP_OR OP_XOR OP_SHL OP_SHR OP_USHR OP_CMPL OP_CMPG OP_CMP OP_AGETX OP_APUTX
visitStmt3R in class DexCodeVisitorpublic void visitTryCatch(DexLabel start, DexLabel end, DexLabel[] handler, java.lang.String[] type)
visitTryCatch in class DexCodeVisitorpublic void visitTypeStmt(Op op, int a, int b, java.lang.String type)
DexCodeVisitorOP_INSTANCE_OF OP_NEW_ARRAY OP_CHECK_CAST OP_NEW_INSTANCE
visitTypeStmt in class DexCodeVisitorpublic DexDebugVisitor visitDebug()
visitDebug in class DexCodeVisitor