Modifier and Type | Method and Description |
---|---|
Node |
MethodNodeFactory.caseArray(VarNode base) |
Node |
MethodNodeFactory.caseArray(VarNode base) |
Node |
GlobalNodeFactory.caseNewInstance(VarNode cls) |
Node |
GlobalNodeFactory.caseNewInstance(VarNode cls) |
Modifier and Type | Method and Description |
---|---|
PointsToSet |
PtSensVisitor.toSparkCompatiableResult(VarNode vn)
Transform the result to SPARK style context insensitive points-to set.
|
PointsToSet |
PtSensVisitor.toSparkCompatiableResult(VarNode vn)
Transform the result to SPARK style context insensitive points-to set.
|
Modifier and Type | Field and Description |
---|---|
VarNode |
CgEdge.base_var |
VarNode |
CgEdge.base_var |
Modifier and Type | Method and Description |
---|---|
protected Set<VarNode> |
DemandCSPointsTo.computeFlowsTo(AllocNode alloc,
HeuristicType heuristic)
compute a flows-to set for an allocation site.
|
protected Set<VarNode> |
DemandCSPointsTo.computeFlowsTo(AllocNode alloc,
HeuristicType heuristic)
compute a flows-to set for an allocation site.
|
protected Set<VarNode> |
DemandCSPointsTo.getFlowsToHelper(AllocAndContext allocAndContext) |
protected Set<VarNode> |
DemandCSPointsTo.getFlowsToHelper(AllocAndContext allocAndContext) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
Modifier and Type | Method and Description |
---|---|
void |
DotPointerGraph.addAssign(VarNode from,
VarNode to) |
void |
DotPointerGraph.addAssign(VarNode from,
VarNode to) |
void |
DotPointerGraph.addCall(VarNode from,
VarNode to,
Integer callSite) |
void |
DotPointerGraph.addCall(VarNode from,
VarNode to,
Integer callSite) |
void |
DotPointerGraph.addLoad(FieldRefNode from,
VarNode to) |
void |
DotPointerGraph.addLoad(FieldRefNode from,
VarNode to) |
void |
DotPointerGraph.addMatch(VarNode from,
VarNode to) |
void |
DotPointerGraph.addMatch(VarNode from,
VarNode to) |
void |
DotPointerGraph.addNew(AllocNode from,
VarNode to) |
void |
DotPointerGraph.addNew(AllocNode from,
VarNode to) |
void |
DotPointerGraph.addStore(VarNode from,
FieldRefNode to) |
void |
DotPointerGraph.addStore(VarNode from,
FieldRefNode to) |
protected DemandCSPointsTo.CallingContextSet |
DemandCSPointsTo.checkAllocAndContextCache(AllocAndContext allocAndContext,
VarNode targetVar) |
protected DemandCSPointsTo.CallingContextSet |
DemandCSPointsTo.checkAllocAndContextCache(AllocAndContext allocAndContext,
VarNode targetVar) |
protected boolean |
DemandCSPointsTo.checkP2Set(VarNode v,
HeuristicType heuristic,
Predicate<Set<AllocAndContext>> p2setPred)
check the computed points-to set of a variable against some predicate
|
protected boolean |
DemandCSPointsTo.checkP2Set(VarNode v,
HeuristicType heuristic,
Predicate<Set<AllocAndContext>> p2setPred)
check the computed points-to set of a variable against some predicate
|
protected PointsToSet |
DemandCSPointsTo.computeRefinedReachingObjects(VarNode v)
Computes the refined set of reaching objects for l.
|
protected PointsToSet |
DemandCSPointsTo.computeRefinedReachingObjects(VarNode v)
Computes the refined set of reaching objects for l.
|
protected void |
DemandCSPointsTo.dumpPathForLoc(VarNode v,
AllocNode badLoc,
String filePrefix) |
protected void |
DemandCSPointsTo.dumpPathForLoc(VarNode v,
AllocNode badLoc,
String filePrefix) |
protected Collection<AssignEdge> |
DemandCSPointsTo.filterAssigns(VarNode v,
ImmutableStack<Integer> callingContext,
boolean forward,
boolean refineVirtCalls) |
protected Collection<AssignEdge> |
DemandCSPointsTo.filterAssigns(VarNode v,
ImmutableStack<Integer> callingContext,
boolean forward,
boolean refineVirtCalls) |
protected DemandCSPointsTo.CallingContextSet |
DemandCSPointsTo.findVarContextsFromAlloc(AllocAndContext allocAndContext,
VarNode targetVar) |
protected DemandCSPointsTo.CallingContextSet |
DemandCSPointsTo.findVarContextsFromAlloc(AllocAndContext allocAndContext,
VarNode targetVar) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleMatchSrc(VarNode matchSrc,
PointsToSetInternal intersection,
VarNode loadBase,
VarNode storeBase,
DemandCSPointsTo.VarAndContext origVarAndContext,
SparkField field,
boolean refine) |
abstract void |
DemandCSPointsTo.IncomingEdgeHandler.handleMatchSrc(VarNode matchSrc,
PointsToSetInternal intersection,
VarNode loadBase,
VarNode storeBase,
DemandCSPointsTo.VarAndContext origVarAndContext,
SparkField field,
boolean refine) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected Set<VarNode> |
DemandCSPointsTo.nodesPropagatedThrough(VarNode source,
PointsToSetInternal allocs) |
protected boolean |
DemandCSPointsTo.refineAlias(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAlias(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAliasInternal(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineAliasInternal(VarNode v1,
VarNode v2,
PointsToSetInternal intersection,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineP2Set(VarNode v,
PointsToSetInternal badLocs,
HeuristicType heuristic) |
protected boolean |
DemandCSPointsTo.refineP2Set(VarNode v,
PointsToSetInternal badLocs,
HeuristicType heuristic) |
Constructor and Description |
---|
VarAndContext(VarNode var,
ImmutableStack<Integer> context) |
VarAndContext(VarNode var,
ImmutableStack<Integer> context) |
VarContextAndUp(VarNode var,
ImmutableStack<Integer> context,
ImmutableStack<Integer> upContext) |
VarContextAndUp(VarNode var,
ImmutableStack<Integer> context,
ImmutableStack<Integer> upContext) |
Modifier and Type | Method and Description |
---|---|
VarNode |
AssignEdge.getDst() |
VarNode |
AssignEdge.getDst() |
VarNode |
AssignEdge.getSrc() |
VarNode |
AssignEdge.getSrc() |
Modifier and Type | Method and Description |
---|---|
ArraySet<VarNode> |
ContextSensitiveInfo.getInPortsForMethod(SootMethod method) |
ArraySet<VarNode> |
ContextSensitiveInfo.getInPortsForMethod(SootMethod method) |
ArraySet<VarNode> |
ContextSensitiveInfo.getNodesForMethod(SootMethod method) |
ArraySet<VarNode> |
ContextSensitiveInfo.getNodesForMethod(SootMethod method) |
ArraySet<VarNode> |
ContextSensitiveInfo.getOutPortsForMethod(SootMethod method) |
ArraySet<VarNode> |
ContextSensitiveInfo.getOutPortsForMethod(SootMethod method) |
Set<VarNode> |
ValidMatches.vMatchInvLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchInvLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchLookup(VarNode src) |
Modifier and Type | Method and Description |
---|---|
ArraySet<AssignEdge> |
ContextSensitiveInfo.getAssignBarEdges(VarNode node) |
ArraySet<AssignEdge> |
ContextSensitiveInfo.getAssignBarEdges(VarNode node) |
ArraySet<AssignEdge> |
ContextSensitiveInfo.getAssignEdges(VarNode node) |
ArraySet<AssignEdge> |
ContextSensitiveInfo.getAssignEdges(VarNode node) |
static boolean |
SootUtil.isExceptionNode(VarNode node) |
static boolean |
SootUtil.isExceptionNode(VarNode node) |
static boolean |
SootUtil.isParamNode(VarNode node) |
static boolean |
SootUtil.isParamNode(VarNode node) |
static boolean |
SootUtil.isRetNode(VarNode node) |
static boolean |
SootUtil.isRetNode(VarNode node) |
static boolean |
SootUtil.isStringNode(VarNode node) |
static boolean |
SootUtil.isStringNode(VarNode node) |
static boolean |
SootUtil.isThisNode(VarNode node) |
static boolean |
SootUtil.isThisNode(VarNode node) |
static boolean |
SootUtil.isThreadGlobal(VarNode node) |
static boolean |
SootUtil.isThreadGlobal(VarNode node) |
boolean |
AllocationSiteHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.PointsToSetHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.CastCheckHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.VirtualCallHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.PointsToSetHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.CastCheckHandler.shouldHandle(VarNode dst) |
boolean |
AllocationSiteHandler.VirtualCallHandler.shouldHandle(VarNode dst) |
Set<VarNode> |
ValidMatches.vMatchInvLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchInvLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchLookup(VarNode src) |
Set<VarNode> |
ValidMatches.vMatchLookup(VarNode src) |
Constructor and Description |
---|
AssignEdge(VarNode from,
VarNode to) |
AssignEdge(VarNode from,
VarNode to) |
Modifier and Type | Class and Description |
---|---|
class |
ContextVarNode
Represents a simple variable node with context.
|
class |
GlobalVarNode
Represents a simple variable node (Green) in the pointer assignment graph
that is not associated with any particular method invocation.
|
class |
LocalVarNode
Represents a simple variable node (Green) in the pointer assignment graph
that is specific to a particular method invocation.
|
Modifier and Type | Field and Description |
---|---|
protected VarNode |
FieldRefNode.base |
protected VarNode |
FieldRefNode.base |
Modifier and Type | Field and Description |
---|---|
protected Map<VarNode,Object> |
PAG.allocInv |
protected Map<VarNode,Object> |
PAG.allocInv |
protected Map<VarNode,Object> |
PAG.assignInstanceInv |
protected Map<VarNode,Object> |
PAG.assignInstanceInv |
protected Map<VarNode,Object> |
PAG.loadInv |
protected Map<VarNode,Object> |
PAG.loadInv |
protected Map<VarNode,Object> |
PAG.newInstance |
protected Map<VarNode,Object> |
PAG.newInstance |
protected Map<VarNode,Object> |
PAG.simple |
protected Map<VarNode,Object> |
PAG.simple |
protected Map<VarNode,Object> |
PAG.simpleInv |
protected Map<VarNode,Object> |
PAG.simpleInv |
protected Map<VarNode,Object> |
PAG.store |
protected Map<VarNode,Object> |
PAG.store |
Modifier and Type | Method and Description |
---|---|
VarNode |
FieldRefNode.getBase()
Returns the base of this field reference.
|
VarNode |
FieldRefNode.getBase()
Returns the base of this field reference.
|
protected VarNode |
MethodPAG.parameterize(LocalVarNode vn,
Context varNodeParameter) |
protected VarNode |
MethodPAG.parameterize(LocalVarNode vn,
Context varNodeParameter) |
Modifier and Type | Method and Description |
---|---|
boolean |
PAG.addAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.addAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.addAssignInstanceEdge(NewInstanceNode from,
VarNode to) |
boolean |
PAG.addAssignInstanceEdge(NewInstanceNode from,
VarNode to) |
void |
PAG.addDereference(VarNode base)
Adds the base of a dereference to the list of dereferenced variables.
|
void |
PAG.addDereference(VarNode base)
Adds the base of a dereference to the list of dereferenced variables.
|
boolean |
PAG.addLoadEdge(FieldRefNode from,
VarNode to) |
boolean |
PAG.addLoadEdge(FieldRefNode from,
VarNode to) |
boolean |
PAG.addNewInstanceEdge(VarNode from,
NewInstanceNode to) |
boolean |
PAG.addNewInstanceEdge(VarNode from,
NewInstanceNode to) |
boolean |
PAG.addSimpleEdge(VarNode from,
VarNode to) |
boolean |
PAG.addSimpleEdge(VarNode from,
VarNode to) |
boolean |
PAG.addStoreEdge(VarNode from,
FieldRefNode to) |
boolean |
PAG.addStoreEdge(VarNode from,
FieldRefNode to) |
Node[] |
PAG.allocInvLookup(VarNode key) |
Node[] |
PAG.allocInvLookup(VarNode key) |
boolean |
PAG.doAddAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.doAddAllocEdge(AllocNode from,
VarNode to) |
boolean |
PAG.doAddAssignInstanceEdge(NewInstanceNode from,
VarNode to) |
boolean |
PAG.doAddAssignInstanceEdge(NewInstanceNode from,
VarNode to) |
boolean |
PAG.doAddLoadEdge(FieldRefNode from,
VarNode to) |
boolean |
PAG.doAddLoadEdge(FieldRefNode from,
VarNode to) |
boolean |
PAG.doAddNewInstanceEdge(VarNode from,
NewInstanceNode to) |
boolean |
PAG.doAddNewInstanceEdge(VarNode from,
NewInstanceNode to) |
boolean |
PAG.doAddSimpleEdge(VarNode from,
VarNode to) |
boolean |
PAG.doAddSimpleEdge(VarNode from,
VarNode to) |
boolean |
PAG.doAddStoreEdge(VarNode from,
FieldRefNode to) |
boolean |
PAG.doAddStoreEdge(VarNode from,
FieldRefNode to) |
protected void |
PAG2HTML.dumpVarNode(VarNode v,
JarOutputStream jarOut) |
protected void |
PAG2HTML.dumpVarNode(VarNode v,
JarOutputStream jarOut) |
Node[] |
PAG.loadInvLookup(VarNode key) |
Node[] |
PAG.loadInvLookup(VarNode key) |
FieldRefNode |
PAG.makeFieldRefNode(VarNode base,
SparkField field)
Finds or creates the FieldRefNode for base variable base and field field,
of type type.
|
FieldRefNode |
PAG.makeFieldRefNode(VarNode base,
SparkField field)
Finds or creates the FieldRefNode for base variable base and field field,
of type type.
|
static String |
PagToDotDumper.makeLabel(VarNode base) |
static String |
PagToDotDumper.makeLabel(VarNode base) |
Node[] |
PAG.newInstanceLookup(VarNode key) |
Node[] |
PAG.newInstanceLookup(VarNode key) |
Node[] |
PAG.simpleInvLookup(VarNode key) |
Node[] |
PAG.simpleInvLookup(VarNode key) |
Node[] |
PAG.simpleLookup(VarNode key) |
Node[] |
PAG.simpleLookup(VarNode key) |
Node[] |
PAG.storeLookup(VarNode key) |
Node[] |
PAG.storeLookup(VarNode key) |
protected String |
PAG2HTML.varNode(String dirPrefix,
VarNode vv) |
protected String |
PAG2HTML.varNode(String dirPrefix,
VarNode vv) |
protected String |
PAG2HTML.varNodeReps(VarNode v) |
protected String |
PAG2HTML.varNodeReps(VarNode v) |
Modifier and Type | Field and Description |
---|---|
protected Set<VarNode> |
PropAlias.aliasWorkList |
protected Set<VarNode> |
PropAlias.aliasWorkList |
protected MultiMap<SparkField,VarNode> |
MergeChecker.fieldToBase |
protected MultiMap<SparkField,VarNode> |
PropAlias.fieldToBase |
protected MultiMap<SparkField,VarNode> |
MergeChecker.fieldToBase |
protected MultiMap<SparkField,VarNode> |
PropAlias.fieldToBase |
protected Set<VarNode> |
PropAlias.varNodeWorkList |
protected Set<VarNode> |
PropWorklist.varNodeWorkList |
protected Set<VarNode> |
PropWorklist.varNodeWorkList |
protected Set<VarNode> |
PropAlias.varNodeWorkList |
protected HashSet<VarNode> |
SCCCollapser.visited |
protected HashSet<VarNode> |
TopoSorter.visited |
protected HashSet<VarNode> |
TopoSorter.visited |
protected HashSet<VarNode> |
SCCCollapser.visited |
Modifier and Type | Method and Description |
---|---|
protected void |
TopoSorter.dfsVisit(VarNode n) |
protected void |
TopoSorter.dfsVisit(VarNode n) |
protected void |
SCCCollapser.dfsVisit(VarNode v,
VarNode rootOfSCC) |
protected void |
SCCCollapser.dfsVisit(VarNode v,
VarNode rootOfSCC) |
protected void |
Checker.handleSimples(VarNode src) |
protected void |
MergeChecker.handleSimples(VarNode src) |
protected boolean |
PropIter.handleSimples(VarNode src) |
protected boolean |
PropIter.handleSimples(VarNode src) |
protected void |
Checker.handleSimples(VarNode src) |
protected void |
MergeChecker.handleSimples(VarNode src) |
protected void |
Checker.handleStores(VarNode src) |
protected void |
MergeChecker.handleStores(VarNode src) |
protected boolean |
PropIter.handleStores(VarNode src) |
protected boolean |
PropIter.handleStores(VarNode src) |
protected void |
Checker.handleStores(VarNode src) |
protected void |
MergeChecker.handleStores(VarNode src) |
protected boolean |
PropAlias.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropMerge.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropWorklist.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropWorklist.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropMerge.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
protected boolean |
PropAlias.handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.
|
void |
OnFlyCallGraph.updatedNode(VarNode vn) |
void |
OnFlyCallGraph.updatedNode(VarNode vn) |