Package pascal.taie.analysis.pta.plugin
Class CompositePlugin
java.lang.Object
pascal.taie.analysis.pta.plugin.CompositePlugin
- All Implemented Interfaces:
Plugin
- Direct Known Subclasses:
NativeModeller
,ReflectionAnalysis
,TaintAnalysis
Composite plugin which allows multiple independent plugins
to be used together.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
void
onFinish()
Invoked when pointer analysis finishes.void
onNewCallEdge
(Edge<CSCallSite, CSMethod> edge) Invoked when a new call graph edge is discovered.void
onNewCSMethod
(CSMethod csMethod) Invoked when a new reachable context-sensitive method is discovered.void
onNewMethod
(JMethod method) Invoked when a new reachable method is discovered.void
onNewPointsToSet
(CSVar csVar, PointsToSet pts) Invoked when set of new objects flow to a context-sensitive variable.void
Invoked when a new reachable stmt is discovered.void
Invoked when pointer analysis has processed all entries in the work list.void
onStart()
Invoked when pointer analysis starts.void
onUnresolvedCall
(CSObj recv, Context context, Invoke invoke) Invoked when pointer analysis failed to resolve callee (i.e., resolve to null) on a receiver object.void
Sets pointer analysis solver which will be used later by the plugin.
-
Constructor Details
-
CompositePlugin
public CompositePlugin()
-
-
Method Details
-
addPlugin
-
clearPlugins
public void clearPlugins() -
setSolver
Description copied from interface:Plugin
Sets pointer analysis solver which will be used later by the plugin. -
onStart
public void onStart()Description copied from interface:Plugin
Invoked when pointer analysis starts. -
onPhaseFinish
public void onPhaseFinish()Description copied from interface:Plugin
Invoked when pointer analysis has processed all entries in the work list. Some plugins need to perform certain computation at this stage (so that it can collect enough points-to information in the program), and may further add entries to the work list to "restart" the pointer analysis.- Specified by:
onPhaseFinish
in interfacePlugin
-
onFinish
public void onFinish()Description copied from interface:Plugin
Invoked when pointer analysis finishes. Pointer analysis is supposed to have been finished at this stage, thus this call back should NOT modify pointer analysis results. -
onNewPointsToSet
Description copied from interface:Plugin
Invoked when set of new objects flow to a context-sensitive variable.- Specified by:
onNewPointsToSet
in interfacePlugin
- Parameters:
csVar
- variable whose points-to set changespts
- set of new objects
-
onNewCallEdge
Description copied from interface:Plugin
Invoked when a new call graph edge is discovered.- Specified by:
onNewCallEdge
in interfacePlugin
- Parameters:
edge
- new call graph edge
-
onNewMethod
Description copied from interface:Plugin
Invoked when a new reachable method is discovered.- Specified by:
onNewMethod
in interfacePlugin
- Parameters:
method
- new reachable method
-
onNewStmt
Description copied from interface:Plugin
Invoked when a new reachable stmt is discovered. -
onNewCSMethod
Description copied from interface:Plugin
Invoked when a new reachable context-sensitive method is discovered.- Specified by:
onNewCSMethod
in interfacePlugin
- Parameters:
csMethod
- new reachable context-sensitive method
-
onUnresolvedCall
Description copied from interface:Plugin
Invoked when pointer analysis failed to resolve callee (i.e., resolve to null) on a receiver object. Some plugins take over such cases to do their analyses.- Specified by:
onUnresolvedCall
in interfacePlugin
- Parameters:
recv
- the receiver objectcontext
- the context of the invocationinvoke
- the invocation site
-