[Soot-list] callgraph analysis in soot version 2.2.3

Ondrej Lhotak olhotak at uwaterloo.ca
Wed Dec 13 10:41:06 EST 2006


It sounds like you are not extending Soot in the way envisioned by the
original Soot designers, by adding passes and calling soot.Main.main.

I suspect that your problem might go away (but I'm not sure) if you call
Scene.v().loadNecessaryClasses() at some point just after setting the
options.

On Sun, Dec 10, 2006 at 12:15:03PM -0500, Chung-Ching Shen wrote:
> Hi,
> 
> We're interested in using latest version of soot (2.2.3) to run our 
> developed package with the use
> of callgraph analysis.  But, I get the error as follows. The same code 
> works fine with Soot version
> 2.0.1, but we don't why it doesn't work with Soot version 2.2.3. Here 
> are the soot options that we
> used:
> 
> sootOptions.put("on-fly-cg", "true");
> sootOptions.put("simulate-natives", "false");
> sootOptions.put("enabled", "true");
> sootOptions.put("verbose", "true");
> 
> sootOptions.put("propagator", "worklist");
> sootOptions.put("set-impl", "double");
> sootOptions.put("double-set-old", "hybrid");
> sootOptions.put("double-set-new", "hybrid");
> 
> and the errors below occur when the following two lines code are executed:
> Scene.v().setEntryPoints(_getCallGraphEntryPoints(source));
> SparkTransformer.v().transform("cg.spark", sootOptions);
> 
> Thanks very much.
> 
> Chung
> 
> --------------------------------------------------------------------------------
> [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$ClassResolutionFailedExcep
> tion: Class java.lang.String$CaseInsensitiveComparator doesn't have 
> method <init
> >([java.lang.String$1]) : void; failed to resolve in superclasses and 
> interfaces
> Looking in java.lang.String$CaseInsensitiveComparator which has methods []
> 
>        at 
> soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:135)
>        at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:95)
>        at 
> soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.
> java:55)
>        at 
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTarge
> ts(OnFlyCallGraphBuilder.java:235)
>        at 
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod
> (OnFlyCallGraphBuilder.java:183)
>        at 
> soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachable
> s(OnFlyCallGraphBuilder.java:81)
>        at 
> soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:69)
> 
>        at 
> soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInse
> nsitiveBuilder.java:78)
>        at 
> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer
> .java:53)
>        at soot.SceneTransformer.transform(SceneTransformer.java:39)
> 
> _______________________________________________
> 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