[Soot-list] Call-graph example code not working
Manjiri Namjoshi
manjiri.namjoshi at googlemail.com
Thu Jun 19 17:07:41 EDT 2008
Hello all,
I am new to this list and have started exploring the Soot framework
recently, so this might be a very basic question, sorry about it.
I am trying to run the example code given on the Soot website to generate
call-graph.
Following is the code:
import java.util.Iterator;
import soot.Scene;
import soot.SootClass;
import soot.SootMethod;
import soot.jimple.toolkits.callgraph.CHATransformer;
import soot.jimple.toolkits.callgraph.CallGraph;
import soot.jimple.toolkits.callgraph.Targets;
import soot.options.Options;
public class CallGraphExample
{
public static void main(String[] args) {
Options.v().set_whole_program(true);
SootClass mainClass =
Scene.v().loadClassAndSupport("testers.CallGraphs");
mainClass.setApplicationClass();
Scene.v().setMainClass(mainClass);
SootClass a = Scene.v().loadClassAndSupport("testers.A");
a.setApplicationClass();
CHATransformer.v().transform();
SootMethod src = mainClass.getMethodByName("doStuff");
CallGraph cg = Scene.v().getCallGraph();
Iterator targets = new Targets(cg.edgesOutOf(src));
while (targets.hasNext()) {
SootMethod tgt = (SootMethod)targets.next();
System.out.println(src + " may call " + tgt);
}
}
}
But it is throwing following exception:
Exception in thread "main" java.lang.NullPointerException
at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTargets(OnFlyCallGraphBuilder.java:287)
at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:183)
at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:81)
at
soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:87)
at
soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:43)
at soot.SceneTransformer.transform(SceneTransformer.java:39)
at soot.SceneTransformer.transform(SceneTransformer.java:45)
at soot.SceneTransformer.transform(SceneTransformer.java:50)
at CallGraphExample.main(CallGraphExample.java:19)
Can anyone please help me with this?
Thank You.
- Manjiri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20080619/87fad4f9/attachment.htm
More information about the Soot-list
mailing list