[Soot-list] Callgraph exception

Chris Pickett chris.pickett at mail.mcgill.ca
Fri Feb 16 14:03:05 EST 2007


Maybe these calls should be the default?

Eric Bodden wrote:
> 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
>>
> 
> 


More information about the Soot-list mailing list