[Soot-list] Callgraph exception
Eric Bodden
eric.bodden at mail.mcgill.ca
Fri Feb 16 08:43:46 EST 2007
As mentioned 2 days ago on this list, you need to call...
Scene.v().loadBasicClasses();
Scene.v().loadNecessaryClasses();
On 2/15/07, John Chaitanya Kati <johnkati at cse.iitb.ac.in> wrote:
> 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...
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
--
Eric Bodden
Sable Research Group
McGill University, Montréal, Canada
More information about the Soot-list
mailing list