Class OptimisticCallgraphBuilder
java.lang.Object
com.ibm.wala.cast.js.callgraph.fieldbased.FieldBasedCallGraphBuilder
com.ibm.wala.cast.js.callgraph.fieldbased.OptimisticCallgraphBuilder
Optimistic call graph builder that propagates inter-procedural data flow iteratively as call
edges are discovered. Slower, but potentially more sound than
PessimisticCallGraphBuilder.- Author:
- mschaefer
-
Nested Class Summary
Nested classes/interfaces inherited from class FieldBasedCallGraphBuilder
FieldBasedCallGraphBuilder.CallGraphResultModifier and TypeClassDescriptionstatic classFull result of call graph computation -
Field Summary
FieldsModifier and TypeFieldDescriptionintThe maximum number of iterations to perform.Fields inherited from class FieldBasedCallGraphBuilder
cache, cha, constructors, options, supportFullPointerAnalysis, targetSelectorModifier and TypeFieldDescriptionprotected final IAnalysisCacheViewprotected final IClassHierarchyprotected final JavaScriptConstructorFunctionsprotected final AnalysisOptionsprotected final booleanfinal MethodTargetSelector -
Constructor Summary
ConstructorsConstructorDescriptionOptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView, boolean supportFullPointerAnalysis) -
Method Summary
Modifier and TypeMethodDescriptionBuild a flow graph for the program to be analysed.Methods inherited from class FieldBasedCallGraphBuilder
addEdgeToJSCallGraph, buildCallGraph, extract, extract, extractCallGraphEdges, flowGraphFactory, handleFunctionCallOrApplyInvocationModifier and TypeMethodDescriptionbooleanaddEdgeToJSCallGraph(JSCallGraph cg, CallSiteReference site, IMethod target, CGNode caller) buildCallGraph(Iterable<? extends Entrypoint> eps, MonitorUtil.IProgressMonitor monitor) Main entry point: builds a flow graph, then extracts a call graph and returns it.extract(FlowGraph flowgraph, Iterable<? extends Entrypoint> eps, MonitorUtil.IProgressMonitor monitor) Extract a call graph from a given flow graph.extract(SSAContextInterpreter interpreter, FlowGraph flowgraph, Iterable<? extends Entrypoint> eps, MonitorUtil.IProgressMonitor monitor) extractCallGraphEdges(FlowGraph flowgraph, MonitorUtil.IProgressMonitor monitor) Extract call edges from the flow graph into high-level representation.protected FlowGraphbooleanhandleFunctionCallOrApplyInvocation(FlowGraph flowgraph, MonitorUtil.IProgressMonitor monitor, JSCallGraph cg, CallVertex callVertex, CGNode caller, CallSiteReference site, IMethod target)
-
Field Details
-
ITERATION_CUTOFF
public int ITERATION_CUTOFFThe maximum number of iterations to perform.
-
-
Constructor Details
-
OptimisticCallgraphBuilder
public OptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView iAnalysisCacheView, boolean supportFullPointerAnalysis)
-
-
Method Details
-
buildFlowGraph
Description copied from class:FieldBasedCallGraphBuilderBuild a flow graph for the program to be analysed.- Specified by:
buildFlowGraphin classFieldBasedCallGraphBuilder- Throws:
CancelException
-