public class ClassHierarchyAnalysisAlgorithm extends AbstractCallGraphAlgorithm
view| Constructor and Description |
|---|
ClassHierarchyAnalysisAlgorithm(View view)
The constructor of the CHA algorithm.
|
| Modifier and Type | Method and Description |
|---|---|
CallGraph |
initialize()
This method initializes and starts the call graph algorithm without given entry points.
|
CallGraph |
initialize(List<MethodSignature> entryPoints)
This method initializes and starts the call graph algorithm with given entry points.
|
protected void |
postProcessingMethod(View view,
MethodSignature sourceMethod,
Deque<MethodSignature> workList,
MutableCallGraph cg)
This method enables optional post-processing of a method in the call graph algorithm
|
protected void |
preProcessingMethod(View view,
MethodSignature sourceMethod,
Deque<MethodSignature> workList,
MutableCallGraph cg)
This method enables optional pre-processing of a method in the call graph algorithm
|
protected Stream<MethodSignature> |
resolveCall(SootMethod method,
AbstractInvokeExpr invokeExpr)
In the CHA algorithm, every virtual call is resolved by only using the hierarchy.
|
addClass, addImplicitEdgesOfEntryPoints, findConcreteMethod, findMainMethod, initializeCallGraph, resolveAllImplicitCallsFromSourceMethod, resolveAllStaticInitializerCallsFromSourceMethod, resolveConcreteDispatch@Nonnull public CallGraph initialize()
CallGraphAlgorithm@Nonnull public CallGraph initialize(@Nonnull List<MethodSignature> entryPoints)
CallGraphAlgorithmentryPoints - a list of entry points for the call graph algorithm. The algorithm starts at
these methods and inspects all reachable methods.@Nonnull protected Stream<MethodSignature> resolveCall(SootMethod method, AbstractInvokeExpr invokeExpr)
resolveCall in class AbstractCallGraphAlgorithmmethod - the method object that contains the given invoke expression in the body.invokeExpr - it contains the call which is resolved.protected void postProcessingMethod(View view, MethodSignature sourceMethod, @Nonnull Deque<MethodSignature> workList, @Nonnull MutableCallGraph cg)
AbstractCallGraphAlgorithmpostProcessingMethod in class AbstractCallGraphAlgorithmview - it contains classes and the type hierarchy.sourceMethod - the processed methodworkList - the current work list that might be extendedcg - the current cg that might be extendedprotected void preProcessingMethod(View view, MethodSignature sourceMethod, @Nonnull Deque<MethodSignature> workList, @Nonnull MutableCallGraph cg)
AbstractCallGraphAlgorithmpreProcessingMethod in class AbstractCallGraphAlgorithmview - viewsourceMethod - the processed methodworkList - the current work list that might be extendedcg - the current cg that might be extendedCopyright © 2024 Soot OSS. All rights reserved.