[Soot-list] interface invoke expression for non-interface type

Eric Bodden eric.bodden at ec-spride.de
Thu Jan 19 10:04:02 EST 2012


Hi Tillmann.

> I've checked this with the stable v2.4. The trunk-version seems to be more
> forgiving about class resolving. Without the allow-phantom-refs-option
> soot2.4 exits with an Exception that indicates the missing Class (in my case
> the Authentication of the Spring Framework) If i add the relevant parts of
> the Spring-Framework, the classloading seems to be okay. So i switched back
> to the trunk-version of soot but now during the CHA-Transformation following
> occurs:
>
> Exception in thread "main" java.lang.RuntimeException: Unrecognized bytecode
> instruction: 168
>    at soot.coffi.CFG.generateJimple(CFG.java:4637)
>    at soot.coffi.CFG.jimplify(CFG.java:1267)
>
> with 2.4 the same occurs:
>
> Exception in thread "main" java.lang.RuntimeException: Unrecognized bytecode
> instruction: 168
>    at soot.coffi.CFG.generateJimple(CFG.java:4644)
>    at soot.coffi.CFG.jimplify(CFG.java:1263)
>    at soot.coffi.CFG.jimplify(CFG.java:951)
>
> So i will take a closer look at the bytecode. I'll keep you current.

This is odd for two reasons: First, 168 is a JSR bytecode, which has
been deprecated for ages. Second, though, Soot usually should handle
JSRs correctly, converting them into other equivalent bytecodes.
Having said that, I am not sure when someone last loaded a class file
with a JSR into Soot...

Eric


More information about the Soot-list mailing list