[Soot-list] Class java.util.Collections$EmptySet doesn't have method <init>([java.util.Collections$1]) : void; failed to resolve in superclasses and interfaces

Aiwu Shi aiwu_shi at hotmail.com
Thu Jan 26 12:44:26 EST 2006


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();

it sounds work, the Spark can begin to execute, but before finishing 
successfully, the same-like error is show again.
  the error message goes below:

[Call Graph] For information on where the call graph may be incomplete, use 
the verbose option to the cg phase.
Total methods: 40361
Initially reachable methods: 148
Classes with at least one reachable method: 71
[Spark] Pointer Assignment Graph in 2.8 seconds.
Total types: 5359
[Spark] Type masks in 0.9 seconds.
VarNodes: 1392
FieldRefNodes: 31
AllocNodes: 327
Cleaning up graph for merged nodes
Done cleaning up graph for merged nodes
[Spark] Pointer Graph simplified in 0.0 seconds.
Worklist has 328 nodes.

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

so, if I need set up some other options? or something wrong else?

thanks for your help and quick response

Aiwu



>From: Ondrej Lhotak <olhotak at uwaterloo.ca>
>To: Aiwu Shi <aiwu_shi at hotmail.com>
>CC: soot-list at sable.mcgill.ca
>Subject: Re: [Soot-list] Class java.util.Collections$EmptySet doesn't have 
>method <init>([java.util.Collections$1]) : void; failed to resolve in 
>superclasses and interfaces
>Date: Thu, 26 Jan 2006 07:54:02 -0500
>
>What command-line options have you set?
>
>One possible cause of this is trying to do whole-program analyses
>without putting Soot in whole-program mode (with the -whole-program
>option).
>
>The default "fast" abc resolver only resolves classes needed for
>intra-procedural analyses. Whole-program mode switches to the full
>resolver which resolves everything needed.
>
>Ondrej
>
>On Wed, Jan 25, 2006 at 05:10:53PM -0500, Aiwu Shi wrote:
> >
> > hi,
> >    I am using the Spark/soot for points-to analysis. when I execute the
> > SparkTransformer.v().transform("cg.spark", sparkOptions), I got the 
>error
> > message like:
> >
> > Class java.util.Collections$EmptySet doesn't have method <init>(
> > [java.util.Collections$1]) : void; failed to resolve in superclasses and
> > interfaces
> >
> > actually, all the library jar files are in the soot class path.
> > if I manually load the class, e.g.,  Scene.v().loadClassAndSupport
> > ("java.util.Collections$EmptySet ")  before executing SparkTransformer,  
>  the
> > error message disappear.
> >
> > I dont know why?   how to fix the problem?
> >
> > thanks
> >
> >  Aiwu
> >
>
> > _______________________________________________
> > 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