[Soot-list] Class soot.jimple.Jimple doesn't have method newVirtualInvokeExpr([soot.Local, soot.SootMethod, java.util.List]) : soot.jimple.VirtualInvokeExpr; failed to resolve in superclasses and interfaces

Aiwu Shi aiwu_shi at hotmail.com
Fri Jan 27 10:44:00 EST 2006


hi,
   I use a simple program to test my points-to analysis.

I am not extending Soot in the recommended way, but just calling into 
Soot/Spark directly.

so, I add the following lines before my loading application classes into 
Scene.
         soot.options.Options.v().set_whole_program(true);
         Scene.v().loadBasicClasses();

unfortunately, I got exception messeage:

[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
Exception in thread "main" soot.AbstractSootMethodRef$ClassResolutionFailedException: Class soot.jimple.Jimple doesn't have method newVirtualInvokeExpr([soot.Local, soot.SootMethod, java.util.List]) : soot.jimple.VirtualInvokeExpr; failed to resolve in superclasses and interfacesLooking in soot.jimple.Jimple which has methods........... 
 at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:136)
 at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:95)
 at soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:55)
 at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTargets(OnFlyCallGraphBuilder.java:235)
 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.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:83)
 at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:53)
 at soot.SceneTransformer.transform(SceneTransformer.java:39)
 at Main.main(Main.java:67)


my main class is followed:

public class Main {

 /**
  * @param args
  */
 public static void main(String[] args) {
  Map options = new HashMap();
     
  soot.options.Options.v().set_whole_program(true);
  Scene.v().loadBasicClasses();
        
  SootClass sc = Scene.v().loadClassAndSupport("DependenceIndusImpl");
  Scene.v().setEntryPoints(sc.getMethods());
   
       
  //set the PointsToAnalysis with phase options
  options.put("enabled", "true");
  options.put("on-fly-cg", "false");
  options.put("set-impl", "hybrid");
  options.put("propagator", "worklist");
  options.put("verbose", "true");
  options.put("ignoreBaseObjects", "true");
  
    SparkTransformer.v().transform("cg.spark",options);
  
  System.out.println("spark is over-----------------------");
    

 }

}


everyboday can help me?  I post the same question yesterday, but no response.

thanks
  Aiwu 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20060127/3b2c78e3/attachment.htm


More information about the Soot-list mailing list