public abstract class ForwardBoomerangSolver<W extends Weight> extends AbstractBoomerangSolver<W>
SyncPDSSolver.PDSSystemgeneratedFieldState, icfg, INTERPROCEDURAL, logger, options, querycallAutomaton, callingPDS, fieldAutomaton, fieldPDS, generatedCallState| Constructor and Description |
|---|
ForwardBoomerangSolver(ObservableICFG<soot.Unit,soot.SootMethod> icfg,
ForwardQuery query,
Map<Map.Entry<INode<Node<Statement,Val>>,Field>,INode<Node<Statement,Val>>> genField,
BoomerangOptions options,
NestedWeightedPAutomatons<Statement,INode<Val>,W> callSummaries,
NestedWeightedPAutomatons<Field,INode<Node<Statement,Val>>,W> fieldSummaries) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
callFlow(soot.SootMethod caller,
Node<Statement,Val> currNode,
soot.jimple.Stmt callSite,
soot.jimple.InvokeExpr invokeExpr) |
Collection<? extends State> |
computeCallFlow(soot.SootMethod caller,
Statement callSite,
soot.jimple.InvokeExpr invokeExpr,
Val fact,
soot.SootMethod callee,
soot.jimple.Stmt calleeSp) |
Collection<State> |
computeNormalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val fact,
soot.jimple.Stmt succ) |
Collection<? extends State> |
computeReturnFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value,
soot.jimple.Stmt callSite,
soot.jimple.Stmt returnSite) |
void |
computeSuccessor(Node<Statement,Val> node) |
INode<Node<Statement,Val>> |
generateFieldState(INode<Node<Statement,Val>> d,
Field loc) |
protected boolean |
killFlow(soot.SootMethod m,
soot.jimple.Stmt curr,
Val value) |
protected Collection<State> |
normalFlow(soot.SootMethod method,
soot.jimple.Stmt curr,
Val value) |
addCallRule, addFieldRule, addReachable, assignsValue, cleanup, debugFieldAutomaton, emptyField, epsilonField, epsilonStmt, exclusionFieldWildCard, fieldWildCard, getCallAutomaton, getCallPDS, getEmptyCalleeFlow, getFieldAutomaton, getFieldPDS, getLoadedField, getNumberOfRules, getPredsOf, getReachableMethods, getResults, getResultsAt, getSuccsOf, getTransitionsToFinalWeights, getValsAtStatement, getVisitedMethods, getWrittenField, isFieldLoadWithBase, isFieldWriteWithBase, isIdentityFlow, isParameter, preventCallTransitionAdd, preventFieldTransitionAdd, processNode, registerFieldTransitionListener, registerReachableMethodListener, registerStatementCallTransitionListener, registerStatementFieldTransitionListener, returnFlow, submit, toString, valueUsedInStatementaddGeneratedFieldState, addNormalCallFlow, addNormalFieldFlow, asFieldFact, debugOutput, generateCallState, getCallWeights, getFieldWeights, getReachedStates, onManyStateListenerRegister, processNormal, processPop, processPush, propagate, registerListener, registerListener, solve, solve, synchedEmptyStackReachable, synchedReachable, wrappublic ForwardBoomerangSolver(ObservableICFG<soot.Unit,soot.SootMethod> icfg, ForwardQuery query, Map<Map.Entry<INode<Node<Statement,Val>>,Field>,INode<Node<Statement,Val>>> genField, BoomerangOptions options, NestedWeightedPAutomatons<Statement,INode<Val>,W> callSummaries, NestedWeightedPAutomatons<Field,INode<Node<Statement,Val>>,W> fieldSummaries)
public Collection<? extends State> computeCallFlow(soot.SootMethod caller, Statement callSite, soot.jimple.InvokeExpr invokeExpr, Val fact, soot.SootMethod callee, soot.jimple.Stmt calleeSp)
public INode<Node<Statement,Val>> generateFieldState(INode<Node<Statement,Val>> d, Field loc)
generateFieldState in class AbstractBoomerangSolver<W extends Weight>protected boolean killFlow(soot.SootMethod m,
soot.jimple.Stmt curr,
Val value)
killFlow in class AbstractBoomerangSolver<W extends Weight>public void computeSuccessor(Node<Statement,Val> node)
computeSuccessor in class SyncPDSSolver<Statement,Val,Field,W extends Weight>protected Collection<State> normalFlow(soot.SootMethod method, soot.jimple.Stmt curr, Val value)
public Collection<State> computeNormalFlow(soot.SootMethod method, soot.jimple.Stmt curr, Val fact, soot.jimple.Stmt succ)
computeNormalFlow in class AbstractBoomerangSolver<W extends Weight>protected void callFlow(soot.SootMethod caller,
Node<Statement,Val> currNode,
soot.jimple.Stmt callSite,
soot.jimple.InvokeExpr invokeExpr)
public Collection<? extends State> computeReturnFlow(soot.SootMethod method, soot.jimple.Stmt curr, Val value, soot.jimple.Stmt callSite, soot.jimple.Stmt returnSite)
computeReturnFlow in class AbstractBoomerangSolver<W extends Weight>Copyright © 2023. All rights reserved.