Package qilin.pta.tools
Class DebloatedPTA
java.lang.Object
qilin.core.PTA
qilin.core.CorePTA
qilin.pta.tools.BasePTA
qilin.pta.tools.StagedPTA
qilin.pta.tools.DebloatedPTA
- All Implemented Interfaces:
Parameterizer,PointsToAnalysis
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected BasePTAprotected PointerAnalysisConfig.DebloatApproachFields inherited from interface qilin.core.PointsToAnalysis
EXCEPTION_NODE, MAIN_THREAD_GROUP_NODE_LOCAL, STRING_NODE -
Constructor Summary
ConstructorsConstructorDescriptionDebloatedPTA(BasePTA basePTA, PointerAnalysisConfig.DebloatApproach approach) -
Method Summary
Modifier and TypeMethodDescriptioncreateCalleeContext(ContextMethod caller, AllocNode receiverNode, CallSite callSite, SootMethod target) The wrapped, fully-analyzed selective PTA.protected voidparameterize(PagNode n, Context context) Dispatches to the matchingparameterizeoverload via double dispatch onn's runtime type (seePagNode.parameterize(Parameterizer, Context)), instead of aninstanceofcascade that a newPagNodesubtype could silently fall through.parameterize(SootMethod method, Context context) Finds or creates the ContextMethod for method and context.protected voidreachingObjects(Context c, SootMethod m, Local l) Returns the set of objects pointed to by variable l in context c.reachingObjects(Context c, SootMethod m, Local l, SootField f) Returns the set of objects pointed to by instance field f of the objects pointed to by l in context c.Returns the set of objects pointed by n: case 1: n is an insensitive node, return objects pointed by n under every possible context. case 2: n is a context-sensitive node, return objects pointed by n under the given context.Returns the set of objects pointed to by instance field f of the objects in the PointsToSet s.Returns the set of objects pointed to by static field f.reachingObjects(SootMethod m, Local l) Returns the set of objects pointed to by variable l.reachingObjects(SootMethod m, Local l, SootField f) Returns the set of objects pointed to by instance field f of the objects pointed to by l.Returns the set of objects pointed to by elements of the arrays in the PointsToSet s.Methods inherited from class qilin.pta.tools.BasePTA
createCallGraphBuilder, createPAG, dumpStatsMethods inherited from class qilin.core.CorePTA
contextConstructor, contextSelector, heapAbstractor, initComponents, parameterize, parameterize, parameterize, parameterize, parameterize, setContextSelectorMethods inherited from class qilin.core.PTA
getCallGraph, getCgb, getConfig, getExceptionHandler, getPag, getScene, getView, isMayAlias, pureRun, reachingObjectsInternal, reachingObjectsInternal
-
Field Details
-
basePTA
-
ctxDepHeaps
-
debloatApproach
-
-
Constructor Details
-
DebloatedPTA
-
-
Method Details
-
preAnalysis
protected void preAnalysis()- Specified by:
preAnalysisin classStagedPTA
-
mainAnalysis
protected void mainAnalysis()- Overrides:
mainAnalysisin classStagedPTA
-
getPropagator
- Overrides:
getPropagatorin classBasePTA
-
getReachableMethods
- Overrides:
getReachableMethodsin classPTA
-
getBasePTA
The wrapped, fully-analyzed selective PTA.PTA.getPag()on thisDebloatedPTAitself still returns this object's own vestigial PAG (constructed beforebasePTAis assigned, and never populated) - callers needing the real PAG/method bodies from the finished analysis (e.g. reading points-to results by hand) should go through here. -
getNakedReachableMethods
- Overrides:
getNakedReachableMethodsin classPTA
-
parameterize
Description copied from class:CorePTADispatches to the matchingparameterizeoverload via double dispatch onn's runtime type (seePagNode.parameterize(Parameterizer, Context)), instead of aninstanceofcascade that a newPagNodesubtype could silently fall through.- Overrides:
parameterizein classCorePTA
-
parameterize
Description copied from class:CorePTAFinds or creates the ContextMethod for method and context.- Overrides:
parameterizein classCorePTA
-
getRootNode
- Overrides:
getRootNodein classCorePTA
-
evaluator
-
emptyContext
- Overrides:
emptyContextin classCorePTA
-
createCalleeContext
public Context createCalleeContext(ContextMethod caller, AllocNode receiverNode, CallSite callSite, SootMethod target) - Overrides:
createCalleeContextin classCorePTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed to by variable l.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed by n: case 1: n is an insensitive node, return objects pointed by n under every possible context. case 2: n is a context-sensitive node, return objects pointed by n under the given context.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed to by variable l in context c.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from interface:PointsToAnalysisReturns the set of objects pointed to by static field f.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed to by instance field f of the objects in the PointsToSet s.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed to by instance field f of the objects pointed to by l.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjects
Description copied from class:PTAReturns the set of objects pointed to by instance field f of the objects pointed to by l in context c.- Specified by:
reachingObjectsin interfacePointsToAnalysis- Overrides:
reachingObjectsin classPTA
-
reachingObjectsOfArrayElement
Description copied from class:PTAReturns the set of objects pointed to by elements of the arrays in the PointsToSet s.- Specified by:
reachingObjectsOfArrayElementin interfacePointsToAnalysis- Overrides:
reachingObjectsOfArrayElementin classPTA
-