[Soot-list] Interface Invoke marked as Virtual Invoke in the bytecode

Marc-André Laverdière marc-andre.laverdiere-papineau at polymtl.ca
Fri Aug 2 12:38:05 EDT 2013


Hello,

I got this crash when analyzing some system (of which I know almost
nothing about) when running Spark.

I could try to put some logic around this, but I am actually interested
in finding out if this is a real bug in our .class file loader.

Or is it that there could be some kind of classpath issue, where one
class is labeled as interface in a jar, but it is a non-interface is
another jar? (I can't think of real-world case of that.

Exception in thread "main" java.lang.RuntimeException: Trying to create
virtual invoke expression for interface type. Use JInterfaceInvokeExpr
instead!
	at
soot.jimple.internal.JVirtualInvokeExpr.<init>(JVirtualInvokeExpr.java:45)
	at soot.jimple.Jimple.newVirtualInvokeExpr(Jimple.java:464)
	at soot.coffi.CFG.generateJimple(CFG.java:4378)
	at soot.coffi.CFG.jimplify(CFG.java:1237)
	at soot.coffi.CFG.jimplify(CFG.java:925)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:107)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:89)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:324)
	at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:532)
	at
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:427)
	at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:55)
	at // ...
-- 
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate


More information about the Soot-list mailing list