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

Re: old to new soot questions



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.