[Soot-list] Callgraph exception
John Chaitanya Kati
johnkati at cse.iitb.ac.in
Thu Feb 15 21:06:31 EST 2007
Hi,
Can anyone help me out in this exception. I tried looking at the lists
but didnt find answer.
[Call Graph] For information on where the call graph may be incomplete,
use the verbose option to the cg phase.
Exception in thread "main" java.lang.RuntimeException: This operation
requires resolving level BODIES but java.lang.System is at resolving level
SIGNATURES
at soot.SootClass.checkLevel(int) (Unknown Source)
at soot.SootMethod.retrieveActiveBody() (Unknown Source)
at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(soot.SootMethod)
(Unknown Source)
at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables()
(Unknown Source)
at soot.jimple.toolkits.callgraph.CallGraphBuilder.build() (Unknown
Source)
at
soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(java.lang.String,
java.util.Map) (Unknown Source)
at soot.SceneTransformer.transform(java.lang.String, java.util.Map)
(Unknown Source)
at soot.Transform.apply() (Unknown Source)
at soot.RadioScenePack.internalApply() (Unknown Source)
at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply()
(Unknown Source)
at soot.Pack.apply() (Unknown Source)
at soot.PackManager.runWholeProgramPacks() (Unknown Source)
at soot.PackManager.runPacks() (Unknown Source)
at soot.Main.run(java.lang.String[]) (Unknown Source)
at soot.Main.main(java.lang.String[]) (Unknown Source)
The code which i found in some posting is this
import soot.*;
import soot.jimple.toolkits.callgraph.CallGraph;
public class cg
{
public static void main(String args[]) throws Exception
{
String strClass = "HelloWorld";
SootClass sootClass = Scene.v().loadClassAndSupport(strClass);
System.out.println("Number of methods in " + sootClass.getName() + ": " + sootClass.getMethodCount());
String[] opts = {"-w" , strClass};
System.out.println("Set Application classes");
sootClass.setApplicationClass();
Scene.v().setMainClass(sootClass);
Main.main(opts);
CallGraph cg = Scene.v().getCallGraph();
if(cg==null)
{
System.out.println("Call graph is equal to null,exiting!");
}
else
{
System.out.println("Call graph is non null");
}
}
}
--
Thanks in advance
John
Like a rose trampled on the ground, you took the fall and thought of me...
More information about the Soot-list
mailing list