[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