Package soot.jimple.toolkits.callgraph
Class VirtualEdgesSummaries
- java.lang.Object
-
- soot.jimple.toolkits.callgraph.VirtualEdgesSummaries
-
public class VirtualEdgesSummaries extends Object
Utility class used byOnFlyCallGraphBuilderfor finding functions at which to place virtual callgraph edges. Function signatures are configurable inSUMMARIESFILE.- Author:
- Julius Naeumann
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVirtualEdgesSummaries.AbstractParameterMappingstatic classVirtualEdgesSummaries.DeferredVirtualEdgeTargetA deferred edge target models cases in which a call does not immediately invoke the callback, but instead returns an object on which a callback an be invoked later.static classVirtualEdgesSummaries.DirectParameterMappingstatic classVirtualEdgesSummaries.DirectTargetstatic classVirtualEdgesSummaries.IndirectTargetstatic classVirtualEdgesSummaries.InstanceinvokeSourcestatic classVirtualEdgesSummaries.InvocationVirtualEdgeTargetThe target of a PAG or callgraph edge that corresponds to the immediate execution of a method.static classVirtualEdgesSummaries.StaticinvokeSourcestatic classVirtualEdgesSummaries.VirtualEdgestatic classVirtualEdgesSummaries.VirtualEdgeSourcestatic classVirtualEdgesSummaries.VirtualEdgeTargetAbstract base class for all virtual edge targets.
-
Field Summary
Fields Modifier and Type Field Description static intBASE_INDEXprotected HashMap<MethodSubSignature,VirtualEdgesSummaries.VirtualEdge>instanceinvokeEdgesprotected HashMap<String,VirtualEdgesSummaries.VirtualEdge>staticinvokeEdges
-
Constructor Summary
Constructors Constructor Description VirtualEdgesSummaries()Creates a default instance of theVirtualEdgesSummariesand loads the summaries from thevirtualedges.xmlthat comes with Soot.VirtualEdgesSummaries(File summariesFile)Creates a new instance of theVirtualEdgesSummariesclass and loads the summaries from the given input fileVirtualEdgesSummaries(Collection<VirtualEdgesSummaries.VirtualEdge> edges)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddInstanceInvoke(VirtualEdgesSummaries.VirtualEdge edg, MethodSubSignature subsig)Set<VirtualEdgesSummaries.VirtualEdge>getAllVirtualEdges()VirtualEdgesSummaries.VirtualEdgegetVirtualEdgesMatchingFunction(String signature)VirtualEdgesSummaries.VirtualEdgegetVirtualEdgesMatchingSubSig(MethodSubSignature subsig)booleanisEmpty()protected voidloadSummaries(InputStream in)Loads the edge summaries from the given streamDocumenttoXMLDocument()
-
-
-
Field Detail
-
BASE_INDEX
public static final int BASE_INDEX
- See Also:
- Constant Field Values
-
instanceinvokeEdges
protected final HashMap<MethodSubSignature,VirtualEdgesSummaries.VirtualEdge> instanceinvokeEdges
-
staticinvokeEdges
protected final HashMap<String,VirtualEdgesSummaries.VirtualEdge> staticinvokeEdges
-
-
Constructor Detail
-
VirtualEdgesSummaries
public VirtualEdgesSummaries()
Creates a default instance of theVirtualEdgesSummariesand loads the summaries from thevirtualedges.xmlthat comes with Soot.
-
VirtualEdgesSummaries
public VirtualEdgesSummaries(File summariesFile)
Creates a new instance of theVirtualEdgesSummariesclass and loads the summaries from the given input file- Parameters:
summariesFile- The file from which to load the virtual edge summaries
-
VirtualEdgesSummaries
public VirtualEdgesSummaries(Collection<VirtualEdgesSummaries.VirtualEdge> edges)
-
-
Method Detail
-
loadSummaries
protected void loadSummaries(InputStream in) throws SAXException, IOException, ParserConfigurationException
Loads the edge summaries from the given stream- Parameters:
in- TheInputStreamfrom which to load the summaries- Throws:
SAXExceptionIOExceptionParserConfigurationException
-
addInstanceInvoke
protected void addInstanceInvoke(VirtualEdgesSummaries.VirtualEdge edg, MethodSubSignature subsig)
-
toXMLDocument
public Document toXMLDocument() throws ParserConfigurationException
- Throws:
ParserConfigurationException
-
getVirtualEdgesMatchingSubSig
public VirtualEdgesSummaries.VirtualEdge getVirtualEdgesMatchingSubSig(MethodSubSignature subsig)
-
getVirtualEdgesMatchingFunction
public VirtualEdgesSummaries.VirtualEdge getVirtualEdgesMatchingFunction(String signature)
-
isEmpty
public boolean isEmpty()
-
getAllVirtualEdges
public Set<VirtualEdgesSummaries.VirtualEdge> getAllVirtualEdges()
-
-