|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object vasco.InterProceduralAnalysis<M,N,A> vasco.OldForwardInterProceduralAnalysis<SootMethod,Unit,PointsToGraph> vasco.callgraph.PointsToAnalysis
public class PointsToAnalysis
An inter-procedural analysis for constructing a context-sensitive call graph on-the-fly.
This analysis uses the value-based context-sensitive inter-procedural framework and was developed as an example instantiation of the framework.
The analysis uses PointsToGraph
objects as data flow values, which
in turn abstracts heap locations using allocation sites.
Warning! The current implementation of this class uses
the old API (see OldForwardInterProceduralAnalysis
) without separate
call/return flow functions. The developer is currently in the process of migrating
this implementation to the new API (see ForwardInterProceduralAnalysis
).
Field Summary |
---|
Fields inherited from class vasco.OldForwardInterProceduralAnalysis |
---|
analysisStack |
Fields inherited from class vasco.InterProceduralAnalysis |
---|
contexts, contextTransitions, freeResultsOnTheFly, reverse, verbose, worklist |
Constructor Summary | |
---|---|
PointsToAnalysis()
Constructs a new points-to analysis as a forward-flow inter-procedural analysis. |
Method Summary | |
---|---|
PointsToGraph |
boundaryValue(SootMethod entryPoint)
Returns a points-to graph with the locals of main initialised to null, except the command-line arguments which are initialised to an array of strings. |
PointsToGraph |
copy(PointsToGraph graph)
Returns a copy of the given points-to graph. |
protected PointsToGraph |
flowFunction(Context<SootMethod,Unit,PointsToGraph> context,
Unit unit,
PointsToGraph in)
Performs operations on points-to graphs depending on the statement inside a CFG node. |
protected PointsToGraph |
handleInvoke(Context<SootMethod,Unit,PointsToGraph> callerContext,
Stmt callStmt,
InvokeExpr ie,
PointsToGraph in)
Handles a call site by resolving the targets of the method invocation. |
PointsToGraph |
meet(PointsToGraph op1,
PointsToGraph op2)
Returns the union of two points-to graphs. |
ProgramRepresentation<SootMethod,Unit> |
programRepresentation()
Returns a program representation on top of which the inter-procedural analysis runs. |
PointsToGraph |
topValue()
The default data flow value (lattice top) is the empty points-to graph. |
Methods inherited from class vasco.OldForwardInterProceduralAnalysis |
---|
doAnalysis, initContext, processCall |
Methods inherited from class vasco.InterProceduralAnalysis |
---|
getCallers, getContext, getContexts, getContextTransitionTable, getMeetOverValidPathsSolution, getMethods, getTargets |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PointsToAnalysis()
Method Detail |
---|
public PointsToGraph boundaryValue(SootMethod entryPoint)
boundaryValue
in class InterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
entryPoint
- an entry point specified by the program representation
ProgramRepresentation.getEntryPoints()
public PointsToGraph copy(PointsToGraph graph)
copy
in class InterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
graph
- the data flow value to copy
protected PointsToGraph flowFunction(Context<SootMethod,Unit,PointsToGraph> context, Unit unit, PointsToGraph in)
flowFunction
in class OldForwardInterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
protected PointsToGraph handleInvoke(Context<SootMethod,Unit,PointsToGraph> callerContext, Stmt callStmt, InvokeExpr ie, PointsToGraph in)
public PointsToGraph meet(PointsToGraph op1, PointsToGraph op2)
meet
in class InterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
op1
- the first operandop2
- the second operand
public PointsToGraph topValue()
topValue
in class InterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
public ProgramRepresentation<SootMethod,Unit> programRepresentation()
InterProceduralAnalysis
programRepresentation
in class InterProceduralAnalysis<SootMethod,Unit,PointsToGraph>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |