A B C D E F G H I K M N O P R S T U V W

A

addTransition(CallSite<M, N, A>, Context<M, N, A>) - Method in class vasco.ContextTransitionTable
Adds a transition to the table.
analysisStack - Variable in class vasco.OldForwardInterProceduralAnalysis
Deprecated.  
ARRAY_FIELD - Static variable in class vasco.callgraph.PointsToGraph
 
assign(Local, Local) - Method in class vasco.callgraph.PointsToGraph
Assigns a root variable to a root variable.
assignConstant(Local, Constant) - Method in class vasco.callgraph.PointsToGraph
Assigns a constant to a root variable.
assignNew(Local, AnyNewExpr) - Method in class vasco.callgraph.PointsToGraph
Assigns a root variable to a new object at a given allocation site.
assignSticky(Local, Local) - Method in class vasco.callgraph.PointsToGraph
Assigns the sticky local to a parameter.
assignSummary(Local) - Method in class vasco.callgraph.PointsToGraph
Assigns a root variable to the summary node.

B

BackwardInterProceduralAnalysis<M,N,A> - Class in vasco
A generic backward-flow inter-procedural analysis which is fully context-sensitive.
BackwardInterProceduralAnalysis() - Constructor for class vasco.BackwardInterProceduralAnalysis
Constructs a new backward-flow inter-procedural analysis.
boundaryValue(SootMethod) - Method in class vasco.callgraph.PointsToAnalysis
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.
boundaryValue(M) - Method in class vasco.InterProceduralAnalysis
Returns the initial data flow value at the program entry points.
boundaryValue(SootMethod) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
boundaryValue(SootMethod) - Method in class vasco.soot.examples.SignAnalysis
 

C

callEntryFlowFunction(Context<M, N, A>, M, N, A) - Method in class vasco.BackwardInterProceduralAnalysis
Processes the inter-procedural flow function for a method call at the start of the call, to handle parameters.
callEntryFlowFunction(Context<M, N, A>, M, N, A) - Method in class vasco.ForwardInterProceduralAnalysis
Processes the inter-procedural flow function for a method call at the start of the call, to handle parameters.
callEntryFlowFunction(Context<SootMethod, Unit, Map<Local, Constant>>, SootMethod, Unit, Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
callEntryFlowFunction(Context<SootMethod, Unit, Map<Local, SignAnalysis.Sign>>, SootMethod, Unit, Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 
callers - Variable in class vasco.ContextTransitionTable
A map from contexts to a set of call-sites that transition to it.
callExitFlowFunction(Context<M, N, A>, M, N, A) - Method in class vasco.BackwardInterProceduralAnalysis
Processes the inter-procedural flow function for a method call at the end of the call, to handle return values.
callExitFlowFunction(Context<M, N, A>, M, N, A) - Method in class vasco.ForwardInterProceduralAnalysis
Processes the inter-procedural flow function for a method call at the end of the call, to handle return values.
callExitFlowFunction(Context<SootMethod, Unit, Map<Local, Constant>>, SootMethod, Unit, Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
callExitFlowFunction(Context<SootMethod, Unit, Map<Local, SignAnalysis.Sign>>, SootMethod, Unit, Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 
CallGraphTransformer - Class in vasco.callgraph
A Soot SceneTransformer for performing PointsToAnalysis.
CallGraphTransformer() - Constructor for class vasco.callgraph.CallGraphTransformer
 
callLocalFlowFunction(Context<M, N, A>, N, A) - Method in class vasco.BackwardInterProceduralAnalysis
Processes the intra-procedural flow function for a method call at the call-site itself, to handle propagation of local values that are not involved in the call.
callLocalFlowFunction(Context<M, N, A>, N, A) - Method in class vasco.ForwardInterProceduralAnalysis
Processes the intra-procedural flow function for a method call at the call-site itself, to handle propagation of local values that are not involved in the call.
callLocalFlowFunction(Context<SootMethod, Unit, Map<Local, Constant>>, Unit, Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
callLocalFlowFunction(Context<SootMethod, Unit, Map<Local, SignAnalysis.Sign>>, Unit, Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 
CallSite<M,N,A> - Class in vasco
A context-sensitive location of a method invocation.
CallSite(Context<M, N, A>, N) - Constructor for class vasco.CallSite
Constructs a new call site with the given parameters.
callSitesOfContexts - Variable in class vasco.ContextTransitionTable
A map of contexts to call-sites present within their method bodies.
canCast(SootClass, SootClass) - Static method in class vasco.callgraph.PointsToGraph
Determines whether an object of one class can be cast to another class.
CLASS_CONST - Static variable in class vasco.callgraph.PointsToGraph
 
CLASS_SITE - Static variable in class vasco.callgraph.PointsToGraph
 
compareTo(CallSite<M, N, A>) - Method in class vasco.CallSite
Call-sites are ordered by the ordering of their context's IDs.
compareTo(Context<M, N, A>) - Method in class vasco.Context
Compares two contexts by their globally unique IDs.
containsEdge(Local, AnyNewExpr) - Method in class vasco.callgraph.PointsToGraph
Returns true only if there is an edge from the given root variable to the given heap node.
Context<M,N,A> - Class in vasco
A value-based context for a context-sensitive inter-procedural data flow analysis.
Context(M, DirectedGraph<N>, boolean) - Constructor for class vasco.Context
Creates a new context for the given method.
contexts - Variable in class vasco.InterProceduralAnalysis
A mapping from methods to a list of contexts for quick lookups.
ContextSensitiveJimpleRepresentation - Class in vasco.soot
A program representation for Soot using the Jimple IR with a context-sensitive call graph.
contextTransitions - Variable in class vasco.InterProceduralAnalysis
A record of transitions from calling context and call-site to called method and called context.
ContextTransitionTable<M,N,A> - Class in vasco
A record of transitions between contexts at call-sites.
ContextTransitionTable() - Constructor for class vasco.ContextTransitionTable
Constructs a new context transition table with no initial entries.
copy(PointsToGraph) - Method in class vasco.callgraph.PointsToAnalysis
Returns a copy of the given points-to graph.
copy(A) - Method in class vasco.InterProceduralAnalysis
Returns a copy of the given data flow value.
copy(Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
copy(Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 
CopyConstantAnalysis - Class in vasco.soot.examples
An inter-procedural copy constant propagation analysis.
CopyConstantTest - Class in vasco.soot.examples
A Soot SceneTransformer for performing CopyConstantAnalysis.
CopyConstantTest() - Constructor for class vasco.soot.examples.CopyConstantTest
 

D

DataFlowSolution<N,A> - Class in vasco
A mapping of program points to results of data flow analysis.
DataFlowSolution(Map<N, A>, Map<N, A>) - Constructor for class vasco.DataFlowSolution
Constructs a data flow solution with the given IN and OUT values.
defaultCallSites - Variable in class vasco.ContextTransitionTable
A set of call-sites from which transitions are unknown.
DefaultJimpleRepresentation - Class in vasco.soot
A default program representation for Soot using the Jimple IR.
doAnalysis() - Method in class vasco.BackwardInterProceduralAnalysis
Performs the actual data flow analysis.
doAnalysis() - Method in class vasco.ForwardInterProceduralAnalysis
Performs the actual data flow analysis.
doAnalysis() - Method in class vasco.InterProceduralAnalysis
Performs the actual data flow analysis.
doAnalysis() - Method in class vasco.OldForwardInterProceduralAnalysis
Deprecated. Performs the actual data flow analysis.
dumpCallChainStats(PointsToAnalysis, int) - Static method in class vasco.callgraph.Test
 

E

equals(Object) - Method in class vasco.callgraph.PointsToGraph
equals(Object) - Method in class vasco.CallSite
 

F

flowFunction(Context<SootMethod, Unit, PointsToGraph>, Unit, PointsToGraph) - Method in class vasco.callgraph.PointsToAnalysis
Performs operations on points-to graphs depending on the statement inside a CFG node.
flowFunction(Context<M, N, A>, N, A) - Method in class vasco.OldForwardInterProceduralAnalysis
Deprecated.  
formatConstants(Map<Local, Constant>) - Static method in class vasco.soot.examples.CopyConstantTest
 
ForwardInterProceduralAnalysis<M,N,A> - Class in vasco
A generic forward-flow inter-procedural analysis which is fully context-sensitive.
ForwardInterProceduralAnalysis() - Constructor for class vasco.ForwardInterProceduralAnalysis
Constructs a new forward-flow inter-procedural analysis.
freeResultsOnTheFly - Variable in class vasco.InterProceduralAnalysis
A flag, if set, directs the analysis to free memory storing data flow values of individual statements once a context has been analysed and would not be required to be re-analysed.

G

gc() - Method in class vasco.callgraph.PointsToGraph
Removes all unreachable nodes from the edge sets.
getAnalysis() - Method in class vasco.soot.examples.CopyConstantTest
 
getCallers() - Method in class vasco.ContextTransitionTable
Returns an unmodifiable view of the mapping from contexts to their callers.
getCallers(Context<M, N, A>) - Method in class vasco.ContextTransitionTable
Returns the callers of a value context.
getCallers(Context<M, N, A>) - Method in class vasco.InterProceduralAnalysis
Returns the callers of a value context.
getCallingContext() - Method in class vasco.CallSite
Returns the value context at this call-site.
getCallNode() - Method in class vasco.CallSite
Returns the calling node.
getCallSitesOfContexts() - Method in class vasco.ContextTransitionTable
Returns an unmodifiable view of a mapping from calling contexts to all their call-sites.
getContext(M, A) - Method in class vasco.InterProceduralAnalysis
Retrieves a particular value context if it has been constructed.
getContexts(M) - Method in class vasco.InterProceduralAnalysis
Returns a list of value contexts constructed for a given method.
getContextTransitionTable() - Method in class vasco.InterProceduralAnalysis
Returns a reference to the context transition table used by this analysis.
getControlFlowGraph() - Method in class vasco.Context
Returns a reference to the control flow graph of this context's method.
getControlFlowGraph(M) - Method in interface vasco.ProgramRepresentation
Returns an intra-procedural control-flow-graph for a given procedure (method).
getControlFlowGraph(MethodOrMethodContext) - Method in class vasco.soot.ContextSensitiveJimpleRepresentation
Returns an ExceptionalUnitGraph for a given method.
getControlFlowGraph(SootMethod) - Method in class vasco.soot.DefaultJimpleRepresentation
Returns an ExceptionalUnitGraph for a given method.
getCount() - Static method in class vasco.Context
Returns the total number of contexts created so far.
getDefaultCallSites() - Method in class vasco.ContextTransitionTable
Returns an unmodifiable view of the set of call-sites marked "default".
getEntryPoints() - Method in interface vasco.ProgramRepresentation
Returns a list of program entry points (methods).
getEntryPoints() - Method in class vasco.soot.ContextSensitiveJimpleRepresentation
Returns a singleton list containing the main method.
getEntryPoints() - Method in class vasco.soot.DefaultJimpleRepresentation
Returns a singleton list containing the main method.
getEntryValue() - Method in class vasco.Context
Returns a reference to the data flow value at the method entry.
getExitValue() - Method in class vasco.Context
Returns a reference to the data flow value at the method exit.
getField(Local, Local, SootField) - Method in class vasco.callgraph.PointsToGraph
Loads a field of an object into a root variable.
getId() - Method in class vasco.Context
Returns the globally unique identifier of this context.
getMeetOverValidPathsSolution() - Method in class vasco.InterProceduralAnalysis
Returns a meet-over-valid-paths solution by merging data flow values across contexts for each program point.
getMethod() - Method in class vasco.Context
Returns a reference to this context's method.
getMethods() - Method in class vasco.InterProceduralAnalysis
Returns all methods for which at least one context was created.
getPointsToAnalysis() - Method in class vasco.callgraph.CallGraphTransformer
Returns a reference to the PointsToAnalysis object.
getSparkExplicitEdges(Unit) - Static method in class vasco.callgraph.Test
 
getSparkExplicitEdges(SootMethod) - Static method in class vasco.callgraph.Test
 
getTargets(Local) - Method in class vasco.callgraph.PointsToGraph
Returns the points-to set of a root variable.
getTargets(CallSite<M, N, A>) - Method in class vasco.ContextTransitionTable
Returns the targets of a call-site.
getTargets(CallSite<M, N, A>) - Method in class vasco.InterProceduralAnalysis
Returns the target of a call-site.
getTransitions() - Method in class vasco.ContextTransitionTable
Returns an unmodifiable view of context transitions.
getValueAfter(N) - Method in class vasco.Context
Gets the data flow value at the exit of the given node.
getValueAfter(N) - Method in class vasco.DataFlowSolution
Returns the data flow value at the exit of a node.
getValueBefore(N) - Method in class vasco.Context
Gets the data flow value at the entry of the given node.
getValueBefore(N) - Method in class vasco.DataFlowSolution
Returns the data flow value at the entry of a node.
getWorkList() - Method in class vasco.Context
Returns a reference to this context's work-list.
GLOBAL_LOCAL - Static variable in class vasco.callgraph.PointsToGraph
 
GLOBAL_SITE - Static variable in class vasco.callgraph.PointsToGraph
 

H

handleInvoke(Context<SootMethod, Unit, PointsToGraph>, Stmt, InvokeExpr, PointsToGraph) - Method in class vasco.callgraph.PointsToAnalysis
Handles a call site by resolving the targets of the method invocation.
hashCode() - Method in class vasco.callgraph.PointsToGraph
hashCode() - Method in class vasco.CallSite
 
heap - Variable in class vasco.callgraph.PointsToGraph
 

I

initContext(M, A) - Method in class vasco.BackwardInterProceduralAnalysis
Creates a new value context and initialises data flow values for its nodes.
initContext(M, A) - Method in class vasco.ForwardInterProceduralAnalysis
Creates a new value context and initialises data flow values for its nodes.
initContext(Context<M, N, A>, A) - Method in class vasco.OldForwardInterProceduralAnalysis
Deprecated. Creates a new context and initialises data flow values.
internalTransform(String, Map) - Method in class vasco.callgraph.CallGraphTransformer
internalTransform(String, Map) - Method in class vasco.soot.examples.CopyConstantTest
 
InterProceduralAnalysis<M,N,A> - Class in vasco
A generic inter-procedural analysis which is fully context-sensitive.
InterProceduralAnalysis(boolean) - Constructor for class vasco.InterProceduralAnalysis
Constructs a new inter-procedural analysis.
isAnalysed() - Method in class vasco.Context
Returns whether or not this context has been analysed at least once.
isCall(N) - Method in interface vasco.ProgramRepresentation
Returns whether a given node contains a method call.
isCall(Unit) - Method in class vasco.soot.ContextSensitiveJimpleRepresentation
Returns true iff the Jimple statement contains an invoke expression.
isCall(Unit) - Method in class vasco.soot.DefaultJimpleRepresentation
Returns true iff the Jimple statement contains an invoke expression.

K

kill(Local) - Method in class vasco.callgraph.PointsToGraph
Removes all out-edges of the given variable
killWithoutGC(Local) - Method in class vasco.callgraph.PointsToGraph
 

M

main(String[]) - Static method in class vasco.callgraph.Test
 
main(String[]) - Static method in class vasco.soot.examples.CopyConstantTest
 
meet(PointsToGraph, PointsToGraph) - Method in class vasco.callgraph.PointsToAnalysis
Returns the union of two points-to graphs.
meet(A, A) - Method in class vasco.InterProceduralAnalysis
Returns the meet of two data flow values.
meet(Map<Local, Constant>, Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
meet(Map<Local, SignAnalysis.Sign>, Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 

N

normalFlowFunction(Context<M, N, A>, N, A) - Method in class vasco.BackwardInterProceduralAnalysis
Processes the intra-procedural flow function of a statement that does not contain a method call.
normalFlowFunction(Context<M, N, A>, N, A) - Method in class vasco.ForwardInterProceduralAnalysis
Processes the intra-procedural flow function of a statement that does not contain a method call.
normalFlowFunction(Context<SootMethod, Unit, Map<Local, Constant>>, Unit, Map<Local, Constant>) - Method in class vasco.soot.examples.CopyConstantAnalysis
 
normalFlowFunction(Context<SootMethod, Unit, Map<Local, SignAnalysis.Sign>>, Unit, Map<Local, SignAnalysis.Sign>) - Method in class vasco.soot.examples.SignAnalysis
 

O

OldForwardInterProceduralAnalysis<M,N,A> - Class in vasco
Deprecated. This is the old API from the initial SOAP '13 submission without call/return flow functions. It is only here for a temporary period while the PointsToAnalysis class is migrated to the new API. After that work is done, this class will be permanently removed from VASCO.
OldForwardInterProceduralAnalysis() - Constructor for class vasco.OldForwardInterProceduralAnalysis
Deprecated. Constructs a new forward-flow inter-procedural analysis.

P

PointsToAnalysis - Class in vasco.callgraph
An inter-procedural analysis for constructing a context-sensitive call graph on-the-fly.
PointsToAnalysis() - Constructor for class vasco.callgraph.PointsToAnalysis
Constructs a new points-to analysis as a forward-flow inter-procedural analysis.
PointsToGraph - Class in vasco.callgraph
A data flow value representation for points-to analysis using allocation sites.
PointsToGraph() - Constructor for class vasco.callgraph.PointsToGraph
Constructs a new empty points-to graph.
PointsToGraph(PointsToGraph) - Constructor for class vasco.callgraph.PointsToGraph
Constructs a copy of the given points-to graph.
printCallSiteStats(PointsToAnalysis) - Static method in class vasco.callgraph.Test
 
printMethodStats(PointsToAnalysis) - Static method in class vasco.callgraph.Test
 
processCall(Context<M, N, A>, N, M, A) - Method in class vasco.OldForwardInterProceduralAnalysis
Deprecated. Processes a call statement.
programRepresentation() - Method in class vasco.callgraph.PointsToAnalysis
 
programRepresentation() - Method in class vasco.InterProceduralAnalysis
Returns a program representation on top of which the inter-procedural analysis runs.
ProgramRepresentation<M,N> - Interface in vasco
A wrapper for the API used by the underlying intermediate representation over which inter-procedural analysis is to be performed.
programRepresentation() - Method in class vasco.soot.examples.CopyConstantAnalysis
Returns a default jimple representation.
programRepresentation() - Method in class vasco.soot.examples.SignAnalysis
Returns a default jimple representation.

R

reachableSet(Context<M, N, A>, boolean) - Method in class vasco.ContextTransitionTable
Computes a reachable set of value contexts from a particular source by traversing the context transition table.
resolveTargets(M, N) - Method in interface vasco.ProgramRepresentation
Returns a list of target methods for call in the given node.
resolveTargets(MethodOrMethodContext, Unit) - Method in class vasco.soot.ContextSensitiveJimpleRepresentation
Resolves virtual calls using the Soot's context-sensitive call graph and returns a list of method-contexts which are the targets of explicit edges.
resolveTargets(SootMethod, Unit) - Method in class vasco.soot.DefaultJimpleRepresentation
Resolves virtual calls using the default call graph and returns a list of methods which are the targets of explicit edges.
RETURN_LOCAL - Static variable in class vasco.callgraph.PointsToGraph
 
reverse - Variable in class vasco.InterProceduralAnalysis
true if the direction of analysis is backward, or false if it is forward.
roots - Variable in class vasco.callgraph.PointsToGraph
 

S

setEntryValue(A) - Method in class vasco.Context
Sets the entry flow of this context.
setExitValue(A) - Method in class vasco.Context
Sets the exit flow of this context.
setField(Local, SootField, Local) - Method in class vasco.callgraph.PointsToGraph
Stores values pointed-to by one root variable into a field of objects pointed-to by another root variable.
setFieldConstant(Local, SootField, Constant) - Method in class vasco.callgraph.PointsToGraph
Stores a constant into a field of objects pointed-to by a root variable.
setFieldNew(Local, SootField, AnyNewExpr) - Method in class vasco.callgraph.PointsToGraph
Stores a new object into a field of objects pointed-to by a root variable.
setFieldSummary(Local, SootField) - Method in class vasco.callgraph.PointsToGraph
Stores the summary node into a field of objects pointed-to by a root variable.
setValueAfter(N, A) - Method in class vasco.Context
Sets the data flow value at the exit of the given node.
setValueBefore(N, A) - Method in class vasco.Context
Sets the data flow value at the entry of the given node.
SignAnalysis - Class in vasco.soot.examples
An inter-procedural simplified sign analysis.
SignAnalysis.Sign - Enum in vasco.soot.examples
 
STICKY_LOCAL - Static variable in class vasco.callgraph.PointsToGraph
 
STRING_CONST - Static variable in class vasco.callgraph.PointsToGraph
 
STRING_SITE - Static variable in class vasco.callgraph.PointsToGraph
 
subtractHeap(PointsToGraph) - Method in class vasco.callgraph.PointsToGraph
Removes nodes contained in the argument.
summarizeTargetFields(Local) - Method in class vasco.callgraph.PointsToGraph
 
SUMMARY_NODE - Static variable in class vasco.callgraph.PointsToGraph
 

T

Test - Class in vasco.callgraph
A main class for testing call graph construction using a Flow and Context Sensitive Points-to Analysis (FCPA).
Test() - Constructor for class vasco.callgraph.Test
 
topValue() - Method in class vasco.callgraph.PointsToAnalysis
The default data flow value (lattice top) is the empty points-to graph.
topValue() - Method in class vasco.InterProceduralAnalysis
Returns the default data flow value (lattice top).
topValue() - Method in class vasco.soot.examples.CopyConstantAnalysis
Returns an empty map.
topValue() - Method in class vasco.soot.examples.SignAnalysis
Returns an empty map.
toString() - Method in class vasco.callgraph.PointsToGraph
 
toString() - Method in class vasco.CallSite
Returns a string representation of this call-site.
toString() - Method in class vasco.Context
transitions - Variable in class vasco.ContextTransitionTable
A map from call-sites to contexts, parameterised by the called method.

U

union(PointsToGraph, PointsToGraph) - Method in class vasco.callgraph.PointsToGraph
Sets this graph to the union of the given arguments.

V

v() - Static method in class vasco.soot.ContextSensitiveJimpleRepresentation
Returns a reference to the singleton object of this class.
v() - Static method in class vasco.soot.DefaultJimpleRepresentation
Returns a reference to the singleton object of this class.
valueOf(String) - Static method in enum vasco.soot.examples.SignAnalysis.Sign
Returns the enum constant of this type with the specified name.
values() - Static method in enum vasco.soot.examples.SignAnalysis.Sign
Returns an array containing the constants of this enum type, in the order they are declared.
vasco - package vasco
 
vasco.callgraph - package vasco.callgraph
 
vasco.soot - package vasco.soot
 
vasco.soot.examples - package vasco.soot.examples
 
verbose - Variable in class vasco.InterProceduralAnalysis
Whether to print information about contexts.

W

worklist - Variable in class vasco.InterProceduralAnalysis
A work-list of contexts to process.

A B C D E F G H I K M N O P R S T U V W