[Soot-list] Adding multiples of the same edge
Jason Ott
jott002 at ucr.edu
Mon May 18 17:45:22 EDT 2015
My tests suggest that when I add multiple entry points that have
overlapping edges, that those edges are not added multiple times. I just
want to confirm that.
Ultimately I experiencing a bizarre problem where I create many files with
many entry points. Each of those files instantiates a particular object.
Also in that file is a list of all public methods that we want included in
the call graph.
I then dump that into soot for Spark to generate the call graph. However,
there are edges that are missing. I have found one instance where I have,
in one of my files, several methods that are not even referenced in the
graph. I'm not sure why they aren't there.
To give an example I have a few files:
fileone.java:
public class fileone {
public static void main(String[] args) {
CustomObject co = new CustomObject();
co.doone();
co.dotwo();
co.dothree();
}
}
filetwo.java:
public class filetwo {
public static void main(String[] args) {
DiffObj do = new DiffObj();
do.doit();
do.do();
do.stop();
}
Then for spark for each file, I add each class and their entry point:
//...
for(file f : folder) {
sootClass = Scene.v().forceResolve(f.className, SootClass.BODIES);
sootClass.setApplicationClass();
entrypoints.add(sootCalss.getMethodByName(f.method));// always resolves
to "main"
}
Scene.v().loadNecessaryClasses();
Scene.v().setEntryPoints(entryPoints);
PackManager.v().runPacks();
callGraph = Scene.v().getCallGraph();
//...
Obviously this part is shortened for brevity. As of right now, do.doit()
and do.do() are not present in the call graph. I don't fully understand
why this is the case. Any help would be greatly appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150518/97991bd2/attachment.html
More information about the Soot-list
mailing list