|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.objectweb.asm.tree.analysis.Analyzer
public class Analyzer
A semantic bytecode analyzer.
| Field Summary | |
|---|---|
private Frame[] |
frames
|
private java.util.List[] |
handlers
|
private IntMap |
indexes
|
private Interpreter |
interpreter
|
private boolean |
jsr
|
private int |
n
|
private int[] |
queue
|
private boolean[] |
queued
|
private Subroutine[] |
subroutines
|
private int |
top
|
| Constructor Summary | |
|---|---|
Analyzer(Interpreter interpreter)
Constructs a new Analyzer. |
|
| Method Summary | |
|---|---|
Frame[] |
analyze(java.lang.String owner,
MethodNode m)
Analyzes the given method. |
Frame[] |
getFrames()
Returns the symbolic stack frame for each instruction of the last recently analyzed method. |
java.util.List |
getHandlers(int insn)
Returns the exception handlers for the given instruction. |
int |
getIndex(java.lang.Object insn)
Returns the index of the given instruction. |
private void |
merge(int insn,
Frame beforeJSR,
Frame afterRET,
Subroutine subroutineBeforeJSR,
boolean[] access)
|
private void |
merge(int insn,
Frame frame,
Subroutine subroutine)
|
protected void |
newControlFlowEdge(Frame frame,
Frame successor)
Creates a control flow graph edge. |
protected Frame |
newFrame(Frame src)
Constructs a new frame that is identical to the given frame. |
protected Frame |
newFrame(int nLocals,
int nStack)
Constructs a new frame with the given size. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private Interpreter interpreter
private int n
private IntMap indexes
private java.util.List[] handlers
private Frame[] frames
private Subroutine[] subroutines
private boolean[] queued
private int[] queue
private int top
private boolean jsr
| Constructor Detail |
|---|
public Analyzer(Interpreter interpreter)
Analyzer.
interpreter - the interpreter to be used to symbolically interpret
the bytecode instructions.| Method Detail |
|---|
public Frame[] analyze(java.lang.String owner,
MethodNode m)
throws AnalyzerException
owner - the internal name of the class to which the method belongs.m - the method to be analyzed.
AnalyzerException - if a problem occurs during the analysis.public Frame[] getFrames()
public int getIndex(java.lang.Object insn)
insn - a Label or AbstractInsnNode of the last
recently analyzed method.
public java.util.List getHandlers(int insn)
insn - the index of an instruction of the last recently analyzed
method.
TryCatchBlockNode objects.
protected Frame newFrame(int nLocals,
int nStack)
nLocals - the maximum number of local variables of the frame.nStack - the maximum stack size of the frame.
protected Frame newFrame(Frame src)
src - a frame.
protected void newControlFlowEdge(Frame frame,
Frame successor)
analyze method during its visit of the method's code).
frame - the frame corresponding to an instruction.successor - the frame corresponding to a successor instruction.
private void merge(int insn,
Frame frame,
Subroutine subroutine)
throws AnalyzerException
AnalyzerException
private void merge(int insn,
Frame beforeJSR,
Frame afterRET,
Subroutine subroutineBeforeJSR,
boolean[] access)
throws AnalyzerException
AnalyzerException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||