PointsToAnalysis class
High-level API for points-to analysis results.
Provides convenient methods to query analysis results after running the Datalog engine.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
dumpFacts(
) → void - Dumps all facts for debugging.
-
getAllFieldsPointsTo(
String heapId) → Map< String, Set< String> > - Gets all fields of a heap object and what they point to.
-
getAllPointsTo(
) → Map< int, Set< String> > - Gets all VarPointsTo relationships.
-
getCalledMethods(
int callSite) → Set< String> - Gets methods called at a specific call site.
-
getCallGraph(
) → Map< int, Set< String> > - Gets the call graph as a map from call sites to methods.
-
getDeepImmutableObjects(
) → Set< String> - Gets all deeply immutable heap objects.
-
getFieldPointsTo(
String heapId, String fieldName) → Set< String> - Gets what a heap object's field points to.
-
getMutableObjects(
) → Set< String> - Gets all mutable heap objects.
-
getPointedBy(
String heapId) → Set< int> - Gets all variables that may point to a specific heap object.
-
getPointsTo(
int varId) → Set< String> - Gets all heap objects that a variable may point to.
-
getPointsToByName(
String varName) → Set< String> - Gets all heap objects that a variable (by name) may point to.
-
getReachableBlocks(
) → Set< int> - Gets all reachable blocks.
-
getSummary(
) → String - Gets a human-readable summary of the analysis.
-
isBlockReachable(
int blockId) → bool - Checks if a specific block is reachable.
-
isDeepImmutable(
String heapId) → bool - Checks if a heap object is deeply immutable.
-
isMutable(
String heapId) → bool - Checks if a heap object is mutable.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
analyzeCfg(
ControlFlowGraph cfg) → PointsToAnalysis - Creates and runs analysis on a CFG directly.
-
analyzeFile(
FileIr ir) → PointsToAnalysis - Creates and runs points-to analysis on a file IR.
-
analyzeFunction(
FunctionIr ir) → PointsToAnalysis - Creates and runs points-to analysis on a function IR.