[Soot-list] Spark Crash due to empty body

Marc-André Laverdière-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Fri Mar 29 21:09:29 EDT 2013


My bad!

It turns out that I had a bug in some code I was generating and it gave 
an empty body.

But I wonder if Soot shouldn't fail more gracefully than that! Is it 
worthwhile to create a patch?

Regards,

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 13-03-29 04:56 PM, Marc-André Laverdière-Papineau wrote:
> Sadly, I don't even know in which method it is choking!!!
> Is there an easy debugging output option, or must I step through the
> program?
>
> Marc-André Laverdière-Papineau
> Doctorant - PhD Candidate
>
> On 13-03-29 03:03 PM, Bernhard Berger wrote:
>> Hi Marc-André,
>>
>> can you check if the byte code of the method has a code attribute? The unit graph that is generated tries to get the first "statement" but there is none.
>>
>> Bernhard
>>
>>
>> Am 29.03.2013 um 02:09 schrieb Marc-Andre Laverdiere-Papineau <marc-andre.laverdiere-papineau at polymtl.ca>:
>>
>>> Hello everybody,
>>>
>>> I have been messing a bit with my classpath today and I got this error
>>> when running a different test case than the one I was working with:
>>>
>>> Exception in thread "main" java.util.NoSuchElementException
>>> 	at soot.util.HashChain.getFirst(HashChain.java:316)
>>> 	at soot.PatchingChain.getFirst(PatchingChain.java:217)
>>> 	at soot.PatchingChain.getFirst(PatchingChain.java:40)
>>> 	at
>>> soot.toolkits.graph.ExceptionalUnitGraph.buildHeadsAndTails(ExceptionalUnitGraph.java:761)
>>> 	at
>>> soot.toolkits.graph.ExceptionalUnitGraph.initialize(ExceptionalUnitGraph.java:300)
>>> 	at
>>> soot.toolkits.graph.ExceptionalUnitGraph.<init>(ExceptionalUnitGraph.java:165)
>>> 	at
>>> soot.toolkits.scalar.LocalSplitter.internalTransform(LocalSplitter.java:91)
>>> 	at soot.BodyTransformer.transform(BodyTransformer.java:51)
>>> 	at soot.Transform.apply(Transform.java:104)
>>> 	at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:57)
>>> 	at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
>>> 	at soot.Pack.apply(Pack.java:124)
>>> 	at soot.jimple.JimpleMethodSource.getBody(JimpleMethodSource.java:49)
>>> 	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:89)
>>> 	at soot.SootMethod.retrieveActiveBody(SootMethod.java:322)
>>> 	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
>>> soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:77)
>>> 	at
>>> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:84)
>>> 	at soot.SceneTransformer.transform(SceneTransformer.java:39)
>>> 	at soot.Transform.apply(Transform.java:89)
>>> 	at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
>>> 	at
>>> soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:49)
>>> 	at soot.Pack.apply(Pack.java:114)
>>> 	at soot.PackManager.runWholeProgramPacks(PackManager.java:464)
>>> 	at soot.PackManager.runPacksNormally(PackManager.java:373)
>>> 	at soot.PackManager.runPacks(PackManager.java:339)
>>> 	at soot.Main.run(Main.java:198)
>>> 	at soot.Main.main(Main.java:141)
>>>
>>> Did I do something silly, or that is a plain bug that needs a patch?
>>>
>>> Regards,
>>>
>>> --
>>> Marc-André Laverdière-Papineau
>>> Doctorant - PhD Candidate
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>
>>>
>>
>>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>


More information about the Soot-list mailing list