[Soot-list] Bug in shimple transformation ?

Navindra Umanee navindra at cs.mcgill.ca
Tue Oct 25 10:27:48 EDT 2005


Hi Guillaume,

Oops.  That's a familiar looking bug.  I'll try to figure something
out by tonight.

Thanks,
Navin.

Guillaume Salagnac <guillaume.salagnac at imag.fr> wrote:

> Hi Navindra,
> 
> And thanks for the patch. Indeed, it solved my problem, and the  
> shimple is now correctly generated for my test class. Actually, I did  
> not compile the patch itself, but I downloaded the "nightly build"  
> version of sootclasses.jar, which is labelled "2168", so I assume it  
> includes the fix. By the way, thanks for the nightly builds beeing back.
> 
> However, I'm still not completely happy, because this new version of  
> the code makes my main project crash. Here's an invocation of soot  
> that illustrates the same problem :
> 
> java soot.Main -f S sun.security.provider.SeedGenerator
> 
> This class seems to live somewhere in the JRE (rt.jar),  but I did  
> not find any Java source code for it, and I don't understand the  
> thrown exception :
> 
> Exception in thread "main" java.lang.RuntimeException: Assertion  
> failed:  Only one head expected.
>          at  
> soot.toolkits.graph.SimpleDominatorsAnalysis.entryInitialFlow 
> (SimpleDominatorsFinder.java:180)
>          at soot.toolkits.scalar.ForwardFlowAnalysis.doAnalysis 
> (ForwardFlowAnalysis.java:100)
>          at soot.toolkits.graph.SimpleDominatorsAnalysis.<init> 
> (SimpleDominatorsFinder.java:158)
>          at soot.toolkits.graph.SimpleDominatorsFinder.<init> 
> (SimpleDominatorsFinder.java:52)
>          at soot.toolkits.scalar.GuaranteedDefsAnalysis.<init> 
> (GuaranteedDefs.java:82)
>          at soot.toolkits.scalar.GuaranteedDefs.<init> 
> (GuaranteedDefs.java:44)
>          at soot.shimple.internal.PhiNodeManager.update 
> (PhiNodeManager.java:63)
>          at soot.shimple.internal.PhiNodeManager.insertTrivialPhiNodes 
> (PhiNodeManager.java:79)
>          at soot.shimple.internal.ShimpleBodyBuilder.transform 
> (ShimpleBodyBuilder.java:104)
>          at soot.shimple.ShimpleBody.rebuild(ShimpleBody.java:137)
>          at soot.shimple.ShimpleBody.<init>(ShimpleBody.java:106)
>          at soot.shimple.Shimple.newBody(Shimple.java:89)
>          at soot.PackManager.runBodyPacks(PackManager.java:549)
>          at soot.PackManager.runBodyPacks(PackManager.java:378)
>          at soot.PackManager.runBodyPacks(PackManager.java:322)
>          at soot.PackManager.runPacks(PackManager.java:317)
>          at soot.Main.run(Main.java:179)
>          at soot.Main.main(Main.java:153)
> 
> 
> Do you have any clues about what to do ? As they need results from  
> the JRE, my whole-shimple analyses do not run any more...
> 
> 
> 
> Thanks,
> -G
> 


More information about the Soot-list mailing list