|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis soot.dava.toolkits.base.AST.structuredAnalysis.UnreachableCodeFinder
public class UnreachableCodeFinder
Nested Class Summary | |
---|---|
class |
UnreachableCodeFinder.UnreachableCodeFlowSet
|
Field Summary | |
---|---|
static boolean |
DEBUG
|
Fields inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis |
---|
DEBUG_IF, DEBUG_STATEMENTS, DEBUG_TRY, DEBUG_WHILE, MERGETYPE |
Constructor Summary | |
---|---|
UnreachableCodeFinder(Object analyze)
|
Method Summary | |
---|---|
Object |
cloneFlowSet(Object flowSet)
Make a clone of the flowset The implementor should know when they want a shallow or deep clone |
DavaFlowSet |
emptyFlowSet()
|
Object |
handleBreak(String label,
Object output,
ASTNode node)
Need to handleBreak stmts There can be explicit breaks (in which case label is non null) There can always be implicit breaks ASTNode is non null |
Object |
ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node,
Object input)
|
boolean |
isConstructReachable(Object construct)
|
boolean |
isReachable(Object input)
|
Object |
newInitialFlow()
|
Object |
processAbruptStatements(Stmt s,
DavaFlowSet input)
Whenever a statement has to be processed the first step is to invoke this method. |
Object |
processASTDoWhileNode(ASTDoWhileNode node,
Object input)
|
Object |
processASTForLoopNode(ASTForLoopNode node,
Object input)
|
Object |
processASTIfElseNode(ASTIfElseNode node,
Object input)
|
Object |
processASTIfNode(ASTIfNode node,
Object input)
|
Object |
processASTLabeledBlockNode(ASTLabeledBlockNode node,
Object input)
|
Object |
processASTStatementSequenceNode(ASTStatementSequenceNode node,
Object input)
|
Object |
processASTSwitchNode(ASTSwitchNode node,
Object input)
|
Object |
processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node,
Object input)
|
Object |
processASTTryNode(ASTTryNode node,
Object input)
|
Object |
processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node,
Object input)
|
Object |
processASTWhileNode(ASTWhileNode node,
Object input)
|
Object |
processStatement(Stmt s,
Object input)
Specific stmts within AST Constructs are processed through this method. |
Object |
processSwitchKey(Value key,
Object input)
Deal with the key in the switch construct |
Object |
processSynchronizedLocal(Local local,
Object input)
To deal with the local used for synch blocks |
Object |
processUnaryBinaryCondition(ASTUnaryBinaryCondition cond,
Object input)
To have maximum flexibility in analyzing conditions the analysis API breaks down the aggregated conditions to simple unary or binary conditions user defined code can then deal with each condition separatly. |
void |
setMergeType()
|
Methods inherited from class soot.dava.toolkits.base.AST.structuredAnalysis.StructuredAnalysis |
---|
debug, debug, getAfterSet, getBeforeSet, getLabel, handleContinue, isDifferent, merge, mergeExplicitAndImplicit, print, process, processASTMethodNode, processASTNode, processCondition, processSingleSubBodyNode |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static boolean DEBUG
Constructor Detail |
---|
public UnreachableCodeFinder(Object analyze)
Method Detail |
---|
public void setMergeType()
setMergeType
in class StructuredAnalysis
public Object newInitialFlow()
newInitialFlow
in class StructuredAnalysis
public DavaFlowSet emptyFlowSet()
emptyFlowSet
in class StructuredAnalysis
public Object cloneFlowSet(Object flowSet)
StructuredAnalysis
cloneFlowSet
in class StructuredAnalysis
public Object processUnaryBinaryCondition(ASTUnaryBinaryCondition cond, Object input)
StructuredAnalysis
processUnaryBinaryCondition
in class StructuredAnalysis
public Object processSynchronizedLocal(Local local, Object input)
StructuredAnalysis
processSynchronizedLocal
in class StructuredAnalysis
public Object processSwitchKey(Value key, Object input)
StructuredAnalysis
processSwitchKey
in class StructuredAnalysis
public Object processStatement(Stmt s, Object input)
StructuredAnalysis
processStatement
in class StructuredAnalysis
public Object processAbruptStatements(Stmt s, DavaFlowSet input)
StructuredAnalysis
processAbruptStatements
in class StructuredAnalysis
public Object handleBreak(String label, Object output, ASTNode node)
StructuredAnalysis
handleBreak
in class StructuredAnalysis
public boolean isReachable(Object input)
public Object processASTStatementSequenceNode(ASTStatementSequenceNode node, Object input)
processASTStatementSequenceNode
in class StructuredAnalysis
public Object processASTLabeledBlockNode(ASTLabeledBlockNode node, Object input)
processASTLabeledBlockNode
in class StructuredAnalysis
public Object processASTSynchronizedBlockNode(ASTSynchronizedBlockNode node, Object input)
processASTSynchronizedBlockNode
in class StructuredAnalysis
public Object processASTIfElseNode(ASTIfElseNode node, Object input)
processASTIfElseNode
in class StructuredAnalysis
public Object ifNotReachableReturnInputElseProcessBodyAndReturnTrue(ASTNode node, Object input)
public Object processASTIfNode(ASTIfNode node, Object input)
processASTIfNode
in class StructuredAnalysis
public Object processASTWhileNode(ASTWhileNode node, Object input)
processASTWhileNode
in class StructuredAnalysis
public Object processASTDoWhileNode(ASTDoWhileNode node, Object input)
processASTDoWhileNode
in class StructuredAnalysis
public Object processASTUnconditionalLoopNode(ASTUnconditionalLoopNode node, Object input)
processASTUnconditionalLoopNode
in class StructuredAnalysis
public Object processASTForLoopNode(ASTForLoopNode node, Object input)
processASTForLoopNode
in class StructuredAnalysis
public Object processASTSwitchNode(ASTSwitchNode node, Object input)
processASTSwitchNode
in class StructuredAnalysis
public Object processASTTryNode(ASTTryNode node, Object input)
processASTTryNode
in class StructuredAnalysis
public boolean isConstructReachable(Object construct)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |