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

Re: Soot looking for array classfiles



I've run across this exception using Soot:

Exception in thread "main" java.lang.RuntimeException: Aborting: can't find classfile[Ljava.rmi.server.Operation;
at soot.Scene.getSootClass(Scene.java:300)
at soot.coffi.CFG.generateJimple(CFG.java:4434)
at soot.coffi.CFG.jimplify(CFG.java:1463)
at soot.coffi.CFG.jimplify(CFG.java:1126)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)


The class that is being analysed was generated by jikes 1.18.
I don't see this with jikes 1.15 generated class files.

My guess is the following CONSTANT_Methodref entry in the constant pool
of the class file:

[21]	class "[Ljava/rmi/server/Operation;"
	method "clone"
	descriptor "()Ljava/lang/Object;"

Jikes has put in a reference to an Object method as an array class
method instead of an Object method.

Would this cause such behavior in Soot? Is there an easy fix??

Thanks,
-Archie


i am having a similar problem with code compiled by the eclipse JDT compiler and an int[]:

Exception in thread "main" java.lang.RuntimeException:
Aborting: can't find classfile[I
       at soot.Scene.getSootClass(Scene.java:300)
       at soot.coffi.CFG.generateJimple(CFG.java:4434)
       at soot.coffi.CFG.jimplify(CFG.java:1463)
       at soot.coffi.CFG.jimplify(CFG.java:1126)
       at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
       at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
       at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)

could someone shed some light as to what's going on here? is anyone looking at this?

thanks!
nall.