public class ClassicCompleteUnitGraph extends TrapUnitGraph
Represents a CFG for a Body instance where the nodes are Unit instances, and where edges are a conservative
indication of unexceptional and exceptional control flow.
ClassicCompleteUnitGraph attempts to duplicate the results that would have been produced by Soot's
CompleteUnitGraph in releases up to Soot 2.1.0 (the one known discrepancy is that the 2.1.0
CompleteUnitGraph would include two edges joining one node to another Units if the first node both
branched to and fell through to the second). It is included solely for testing purposes, and should not be used in actual
analyses.
There are two distinctions between the graphs produced by the ClassicCompleteUnitGraph and ExceptionalUnitGraph:
ThrowAnalysis used to
estimate which exceptions each Unit may throw. ClassicCompleteUnitGraph creates edges for all trapped
Units, regardless of the types of exceptions they may throw.body, heads, method, tails, unitChain, unitToPreds, unitToSuccs| Constructor and Description |
|---|
ClassicCompleteUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional control flow.
|
addEdge, buildHeadsAndTails, buildUnexceptionalEdges, combineMapValues, getBody, getExtendedBasicBlockPathBetween, getHeads, getPredsOf, getSuccsOf, getTails, iterator, size, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic ClassicCompleteUnitGraph(Body body)
the - Body instance from which the graph is built.protected void buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs, Map<Unit,List<Unit>> unitToPreds)
buildExceptionalEdges in class TrapUnitGraphunitToSuccs - A Map from Units to Lists of Units. This is * an ``out parameter'';
buildExceptionalEdges will add a mapping for every Unit within the scope of one or more
Traps to a List of the handler units of those Traps.unitToPreds - A Map from Units to Lists of Units. This is an ``out parameter'';
buildExceptionalEdges will add a mapping for every Trap handler to all the Units
within the scope of that Trap.Copyright © 2020 Soot OSS. All rights reserved.