|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsoot.jimple.spark.pag.PAG
soot.jimple.spark.geom.geomPA.GeomPointsTo
public class GeomPointsTo
The main interface for the points-to analysis with geometric encodings. Since we need SPARK to bootstrap our analysis, thus, we identify ourself to be a subclass of SPARK.
Fields inherited from class soot.jimple.spark.pag.PAG |
---|
alloc, allocInv, assign2edges, callAssigns, callToMethod, edgeQueue, EMPTY_NODE_ARRAY, load, loadInv, maxFinishNumber, nativeMethodDriver, opts, setFactory, simple, simpleInv, somethingMerged, store, storeInv, virtualCallsToReceivers |
Constructor Summary | |
---|---|
GeomPointsTo(SparkOptions opts)
|
Method Summary | |
---|---|
boolean |
castNeverFails(Type src,
Type dst)
|
protected int |
countReachableMethods(int s)
|
IVarAbstraction |
findAndInsertInstanceField(AllocNode obj,
SparkField field)
|
Set<SootMethod> |
getAllReachableMethods()
|
LinkedList<CgEdge> |
getCallEdgesInto(int fid)
|
CgEdge |
getCallEgesOutFrom(int fid)
|
int |
getIDFromSootMethod(SootMethod sm)
|
CgEdge |
getInternalEdgeFromSootEdge(Edge e)
|
IVarAbstraction |
getInternalNode(Node v)
|
int |
getMappedMethodID(Node node)
|
int |
getNumberOfFunctions()
|
int |
getNumberOfObjects()
|
int |
getNumberOfPointers()
|
SootMethod |
getSootMethodFromID(int fid)
|
IWorklist |
getWorklist()
|
boolean |
isReachableMethod(int fid)
|
boolean |
isValidMethod(SootMethod sm)
|
void |
outputNotEvaluatedMethods()
|
void |
parametrize()
|
PointsToSet |
reachingObjects(AllocNode an,
SootField f)
|
PointsToSet |
reachingObjects(Context c,
Local l)
Returns the set of objects pointed to by variable l in context c. |
PointsToSet |
reachingObjects(Context c,
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. |
PointsToSet |
reachingObjects(Local l)
Returns the set of objects pointed to by variable l. |
PointsToSet |
reachingObjects(Local l,
SootField f)
Returns the set of objects pointed to by instance field f of the objects pointed to by l. |
PointsToSet |
reachingObjects(PointsToSet s,
SootField f)
Returns the set of objects pointed to by instance field f of the objects in the PointsToSet s. |
PointsToSet |
reachingObjects(SootField f)
Returns the set of objects pointed to by static field f. |
PointsToSet |
reachingObjectsOfArrayElement(PointsToSet s)
Returns the set of objects pointed to by elements of the arrays in the PointsToSet s. |
void |
solve()
|
String |
toString()
|
void |
transformToCIResult()
For many applications, they only need the context insensitive points-to result. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int NEW_CONS
public static final int ASSIGN_CONS
public static final int LOAD_CONS
public static final int STORE_CONS
public static final int FIELD_ADDRESS
public static final int Undefined_Mapping
public static final int ONE_TO_ONE
public static final int MANY_TO_MANY
public static final int ALL_TO_MANY
public static final int MANY_TO_ALL
public static final int SUPER_MAIN
public static final int UNKNOWN_FUNCTION
public static final long MAX_CONTEXTS
public static final RefType exeception_type
public static int max_cons_budget
public static int max_pts_budget
public static int cfa_blocks
public static int cg_refine_times
protected IWorklist worklist
protected IEncodingBroker nodeGenerator
protected TypeManager typeManager
protected OfflineProcessor offlineProcessor
public Map<Node,IVarAbstraction> consG
public ZArrayNumberer<IVarAbstraction> pointers
public ZArrayNumberer<IVarAbstraction> allocations
public Vector<PlainConstraint> constraints
public Set<Stmt> thread_run_callsites
public int mainID
public long[] context_size
public long[] max_context_size_block
public int[] block_num
public int max_scc_size
public int max_scc_id
public int n_var
public int n_alloc_sites
public int n_func
public int n_calls
public int n_reach_methods
public int n_reach_user_methods
public String dump_file_name
public int solver_encoding
public PrintStream ps
protected Map<String,Boolean> validMethods
protected CgEdge[] call_graph
protected Vector<CgEdge> obsoletedEdges
protected Map<Integer,LinkedList<CgEdge>> rev_call_graph
protected Deque<Integer> queue_cg
protected int[] vis_cg
protected int[] low_cg
protected int[] rep_cg
protected int[] indeg_cg
protected int[] scc_size
protected int pre_cnt
protected Map<SootMethod,Integer> func2int
protected Map<Integer,SootMethod> int2func
protected Map<Edge,CgEdge> edgeMapping
Constructor Detail |
---|
public GeomPointsTo(SparkOptions opts)
Method Detail |
---|
public String toString()
toString
in class Object
public void parametrize()
protected int countReachableMethods(int s)
public void transformToCIResult()
public void solve()
public int getIDFromSootMethod(SootMethod sm)
public SootMethod getSootMethodFromID(int fid)
public boolean isReachableMethod(int fid)
public boolean isValidMethod(SootMethod sm)
public void outputNotEvaluatedMethods()
public Set<SootMethod> getAllReachableMethods()
public CgEdge getCallEgesOutFrom(int fid)
public LinkedList<CgEdge> getCallEdgesInto(int fid)
public int getMappedMethodID(Node node)
public IVarAbstraction getInternalNode(Node v)
public boolean castNeverFails(Type src, Type dst)
public int getNumberOfPointers()
public int getNumberOfObjects()
public int getNumberOfFunctions()
public IWorklist getWorklist()
public IVarAbstraction findAndInsertInstanceField(AllocNode obj, SparkField field)
public CgEdge getInternalEdgeFromSootEdge(Edge e)
public PointsToSet reachingObjects(Local l)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjects(Context c, Local l)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjects(SootField f)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjects(PointsToSet s, SootField f)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjects(Local l, SootField f)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjects(Context c, Local l, SootField f)
PAG
reachingObjects
in interface PointsToAnalysis
reachingObjects
in class PAG
public PointsToSet reachingObjectsOfArrayElement(PointsToSet s)
PAG
reachingObjectsOfArrayElement
in interface PointsToAnalysis
reachingObjectsOfArrayElement
in class PAG
public PointsToSet reachingObjects(AllocNode an, SootField f)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |