|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsoot.jimple.spark.pag.AbstractPAG
Pointer assignment graph.
Field Summary | |
protected java.util.Map |
alloc
|
protected java.util.Map |
allocInv
|
protected ChunkedQueue |
edgeQueue
|
protected java.util.Map |
load
|
protected java.util.Map |
loadInv
|
int |
maxFinishNumber
|
protected AbstractSparkOptions |
opts
|
protected java.util.Map |
simple
|
protected java.util.Map |
simpleInv
|
protected java.util.Map |
store
|
protected java.util.Map |
storeInv
|
protected AbstractTypeManager |
typeManager
|
Constructor Summary | |
AbstractPAG(AbstractSparkOptions opts)
|
Method Summary | |
boolean |
addAllocEdge(AllocNode from,
VarNode to)
|
void |
addCallTarget(AbstractMethodPAG srcmpag,
AbstractMethodPAG tgtmpag,
Stmt s,
java.lang.Object srcContext,
java.lang.Object tgtContext)
Adds method target as a possible target of the invoke expression in s. |
void |
addCallTarget(Edge e)
|
void |
addDereference(VarNode base)
Adds the base of a dereference to the list of dereferenced variables. |
boolean |
addEdge(Node from,
Node to)
Adds an edge to the graph, returning false if it was already there. |
boolean |
addLoadEdge(FieldRefNode from,
VarNode to)
|
boolean |
addSimpleEdge(VarNode from,
VarNode to)
|
boolean |
addStoreEdge(VarNode from,
FieldRefNode to)
|
protected boolean |
addToMap(java.util.Map m,
Node key,
Node value)
|
abstract java.util.Iterator |
allocInvSourcesIterator()
|
QueueReader |
allocNodeListener()
|
abstract java.util.Iterator |
allocSourcesIterator()
|
abstract boolean |
doAddAllocEdge(AllocNode from,
VarNode to)
|
abstract boolean |
doAddLoadEdge(FieldRefNode from,
VarNode to)
|
abstract boolean |
doAddSimpleEdge(VarNode from,
VarNode to)
|
abstract boolean |
doAddStoreEdge(VarNode from,
FieldRefNode to)
|
QueueReader |
edgeReader()
|
AllocDotField |
findAllocDotField(AllocNode an,
SparkField field)
Finds the AllocDotField for base AllocNode an and field field, or returns null. |
ContextVarNode |
findContextVarNode(java.lang.Object baseValue,
java.lang.Object context)
Finds the ContextVarNode for base variable value and context context, or returns null. |
FieldRefNode |
findGlobalFieldRefNode(java.lang.Object baseValue,
SparkField field)
Finds the FieldRefNode for base variable value and field field, or returns null. |
GlobalVarNode |
findGlobalVarNode(java.lang.Object value)
Finds the GlobalVarNode for the variable value, or returns null. |
FieldRefNode |
findLocalFieldRefNode(java.lang.Object baseValue,
SparkField field)
Finds the FieldRefNode for base variable value and field field, or returns null. |
LocalVarNode |
findLocalVarNode(java.lang.Object value)
Finds the LocalVarNode for the variable value, or returns null. |
Numberer |
getAllocDotFieldNodeNumberer()
|
Numberer |
getAllocNodeNumberer()
|
java.util.List |
getDereferences()
Returns list of dereferences variables. |
Numberer |
getFieldRefNodeNumberer()
|
java.util.Map |
getNodeTags()
|
int |
getNumAllocNodes()
|
OnFlyCallGraph |
getOnFlyCallGraph()
|
AbstractSparkOptions |
getOpts()
Returns SparkOptions for this graph. |
P2SetFactory |
getSetFactory()
|
AbstractTypeManager |
getTypeManager()
|
Numberer |
getVarNodeNumberer()
|
abstract java.util.Iterator |
loadInvSourcesIterator()
|
abstract java.util.Iterator |
loadSourcesIterator()
|
AllocDotField |
makeAllocDotField(AllocNode an,
SparkField field)
Finds or creates the AllocDotField for base variable baseValue and field field, of type t. |
AllocNode |
makeAllocNode(java.lang.Object newExpr,
Type type,
SootMethod m)
|
AllocNode |
makeClassConstantNode(java.lang.String s)
|
ContextVarNode |
makeContextVarNode(LocalVarNode base,
java.lang.Object context)
Finds or creates the ContextVarNode for base variable base and context context, of type type. |
ContextVarNode |
makeContextVarNode(java.lang.Object baseValue,
Type baseType,
java.lang.Object context,
SootMethod method)
Finds or creates the ContextVarNode for base variable baseValue and context context, of type type. |
FieldRefNode |
makeFieldRefNode(VarNode base,
SparkField field)
Finds or creates the FieldRefNode for base variable base and field field, of type type. |
FieldRefNode |
makeGlobalFieldRefNode(java.lang.Object baseValue,
Type baseType,
SparkField field)
Finds or creates the FieldRefNode for base variable baseValue and field field, of type type. |
GlobalVarNode |
makeGlobalVarNode(java.lang.Object value,
Type type)
Finds or creates the GlobalVarNode for the variable value, of type type. |
FieldRefNode |
makeLocalFieldRefNode(java.lang.Object baseValue,
Type baseType,
SparkField field,
SootMethod method)
Finds or creates the FieldRefNode for base variable baseValue and field field, of type type. |
LocalVarNode |
makeLocalVarNode(java.lang.Object value,
Type type,
SootMethod method)
Finds or creates the LocalVarNode for the variable value, of type type. |
AllocNode |
makeStringConstantNode(java.lang.String s)
|
GlobalNodeFactory |
nodeFactory()
|
OnFlyCallGraph |
ofcg()
|
PointsToSet |
reachingObjects(Local l,
SootField f)
Returns the set of objects pointed to by instance field f of the objects pointed to by l. |
void |
setOnFlyCallGraph(OnFlyCallGraph ofcg)
|
abstract java.util.Iterator |
simpleInvSourcesIterator()
|
abstract java.util.Iterator |
simpleSourcesIterator()
|
abstract java.util.Iterator |
storeInvSourcesIterator()
|
abstract java.util.Iterator |
storeSourcesIterator()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface soot.PointsToAnalysis |
reachingObjects, reachingObjects, reachingObjects, reachingObjectsOfArrayElement |
Field Detail |
protected ChunkedQueue edgeQueue
protected AbstractSparkOptions opts
protected java.util.Map simple
protected java.util.Map load
protected java.util.Map store
protected java.util.Map alloc
protected java.util.Map simpleInv
protected java.util.Map loadInv
protected java.util.Map storeInv
protected java.util.Map allocInv
protected AbstractTypeManager typeManager
public int maxFinishNumber
Constructor Detail |
public AbstractPAG(AbstractSparkOptions opts)
Method Detail |
public PointsToSet reachingObjects(Local l, SootField f)
reachingObjects
in interface PointsToAnalysis
public AllocNode makeAllocNode(java.lang.Object newExpr, Type type, SootMethod m)
public AllocNode makeStringConstantNode(java.lang.String s)
public AllocNode makeClassConstantNode(java.lang.String s)
public QueueReader allocNodeListener()
public GlobalVarNode findGlobalVarNode(java.lang.Object value)
public LocalVarNode findLocalVarNode(java.lang.Object value)
public GlobalVarNode makeGlobalVarNode(java.lang.Object value, Type type)
public LocalVarNode makeLocalVarNode(java.lang.Object value, Type type, SootMethod method)
public ContextVarNode findContextVarNode(java.lang.Object baseValue, java.lang.Object context)
public ContextVarNode makeContextVarNode(java.lang.Object baseValue, Type baseType, java.lang.Object context, SootMethod method)
public ContextVarNode makeContextVarNode(LocalVarNode base, java.lang.Object context)
public FieldRefNode findLocalFieldRefNode(java.lang.Object baseValue, SparkField field)
public FieldRefNode findGlobalFieldRefNode(java.lang.Object baseValue, SparkField field)
public FieldRefNode makeLocalFieldRefNode(java.lang.Object baseValue, Type baseType, SparkField field, SootMethod method)
public FieldRefNode makeGlobalFieldRefNode(java.lang.Object baseValue, Type baseType, SparkField field)
public FieldRefNode makeFieldRefNode(VarNode base, SparkField field)
public AllocDotField findAllocDotField(AllocNode an, SparkField field)
public AllocDotField makeAllocDotField(AllocNode an, SparkField field)
public abstract boolean doAddSimpleEdge(VarNode from, VarNode to)
public boolean addSimpleEdge(VarNode from, VarNode to)
public abstract boolean doAddStoreEdge(VarNode from, FieldRefNode to)
public boolean addStoreEdge(VarNode from, FieldRefNode to)
public abstract boolean doAddLoadEdge(FieldRefNode from, VarNode to)
public boolean addLoadEdge(FieldRefNode from, VarNode to)
public abstract boolean doAddAllocEdge(AllocNode from, VarNode to)
public boolean addAllocEdge(AllocNode from, VarNode to)
public final boolean addEdge(Node from, Node to)
public QueueReader edgeReader()
public int getNumAllocNodes()
public AbstractTypeManager getTypeManager()
public void setOnFlyCallGraph(OnFlyCallGraph ofcg)
public OnFlyCallGraph getOnFlyCallGraph()
public OnFlyCallGraph ofcg()
public void addDereference(VarNode base)
public java.util.List getDereferences()
public java.util.Map getNodeTags()
public P2SetFactory getSetFactory()
public abstract java.util.Iterator simpleSourcesIterator()
public abstract java.util.Iterator allocSourcesIterator()
public abstract java.util.Iterator storeSourcesIterator()
public abstract java.util.Iterator loadSourcesIterator()
public abstract java.util.Iterator simpleInvSourcesIterator()
public abstract java.util.Iterator allocInvSourcesIterator()
public abstract java.util.Iterator storeInvSourcesIterator()
public abstract java.util.Iterator loadInvSourcesIterator()
public Numberer getAllocNodeNumberer()
public Numberer getVarNodeNumberer()
public Numberer getFieldRefNodeNumberer()
public Numberer getAllocDotFieldNodeNumberer()
public AbstractSparkOptions getOpts()
public final void addCallTarget(Edge e)
public final void addCallTarget(AbstractMethodPAG srcmpag, AbstractMethodPAG tgtmpag, Stmt s, java.lang.Object srcContext, java.lang.Object tgtContext)
protected boolean addToMap(java.util.Map m, Node key, Node value)
public GlobalNodeFactory nodeFactory()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |