[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: old to new soot questions



The stack trace looks more like a problem with the classes that you are
analyzing, rather than anything caused by calling into Soot incorrectly.
It's saying that the Buffer class doesn't have the constructor that is
being referenced. Perhaps, due to problems with the classpath, Soot is
analyzing a different Buffer class file than you expect. Also strange
is the signature in that stack trace: it says it is looking for a
constructor taking an array, but it doesn't say what type of array.
What kinds of class files are you analyzing?

Ondrej

On Thu, Aug 07, 2003 at 03:06:52PM -0500, Oksana I Tkachuk wrote:
> Ondrej,
> Now that I compiled my tool with the new Soot, I have problems running it
> :-)
> 
> Here is what I did before:
> 
> - load classes using
> 
> 	(Scene.v()).loadClassAndSupport(arg);
> 	SootClass internalClass = (Scene.v()).getSootClass(arg);
> 	internalClass.setApplicationClass();
> 
> - create the Hierarchy for Scene
> 
> 	Hierarchy hierarchy =  new Hierarchy()
> 
> - then explore methods of loaded classes
> 
> 	for each internal method for each class
> 		Body jb = internalMethod.retrieveActiveBody();
> 
> This worked beautifully before, however, now I get errors like
> 
> Exception in thread "main" java.lang.RuntimeException: Class Buffer
> doesn't have method <init>([]) : void; failed to resolve in superclasses
> and interfaces
> 
>         at soot.SootClass.getMethod(SootClass.java:427)
>         at soot.coffi.CFG.generateJimple(CFG.java:4498)
>         at soot.coffi.CFG.jimplify(CFG.java:1436)
>         at soot.coffi.CFG.jimplify(CFG.java:1099)
>         at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
>         at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
>         at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
> 
> I am guessing the Hierarchy is not built appropriately. Could you please
> tell me the correct sequence of commands to achieve what I had before.
> 
> Thank you,
> Oksana.
> 
>