[Soot-list] Heros error while running jCute

Eric Bodden eric.bodden at uni-paderborn.de
Mon Jan 14 06:40:58 EST 2019


You’re welcome. Let us know in case we can be of further assistance.

Cheers
Eric

> On 12. Jan 2019, at 06:14, Dhriti Khanna <dhritik at iiitd.ac.in> wrote:
> 
> Thanks Manuel and Eric. jCute was indeed instrumenting the code in a way which is not approved by soot. 
> 
> On Thu, Jan 10, 2019 at 6:55 PM Eric Bodden <eric.bodden at uni-paderborn.de> wrote:
> Hi Dhriti.
> 
> This error seems to have nothing to do with Heros. The problem to me looks as follows:
> 
> For a Jimple body to be valid, @this-assignments have to precede all other statements in the body. Here it might be the case that jCute generates statements in such a way that this is no longer the case. jCute itself calls valdiate() on the body, which then detects the erroreous body, causing the exception to be thrown.
> 
> It might help to take a look at the JimpleBody in question, e.g. by printing it out in a debugger.
> 
> Best wishes
> Eric
> 
> > On 10. Jan 2019, at 12:36, Dhriti Khanna <dhritik at iiitd.ac.in> wrote:
> > 
> > Dear all,
> > 
> > I am coming across an error while running the jCute test cases. jCute is a concolic execution engine which instruments the programs using soot. The error is as follows: 
> > 
> > [Thread-5] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: @this-assignment statement should precede all other statements
> >  method: <tests.Struct: void <init>()>
> > @this-assignment statement should precede all other statements
> >  method: <tests.Struct: void <init>()>
> > 
> > I am not sure whether jCute requires heros framework, but still this error. I want to know when does someone bump into this error?
> > 
> > This is the stack trace:
> > 
> >  method: <tests.Struct: void <init>()>
> >       at soot.jimple.validation.IdentityStatementsValidator.validate(IdentityStatementsValidator.java:51)
> >       at soot.jimple.JimpleBody.validate(JimpleBody.java:114)
> >       at soot.jimple.JimpleBody.validate(JimpleBody.java:97)
> >       at cute.instrument.CuteInstrumenter.internalTransform(CuteInstrumenter.java:162)
> >       at soot.BodyTransformer.transform(BodyTransformer.java:54)
> >       at soot.Transform.apply(Transform.java:105)
> >       at soot.BodyPack.internalApply(BodyPack.java:49)
> >       at soot.Pack.apply(Pack.java:125)
> >       at soot.PackManager.runBodyPacks(PackManager.java:973)
> >       at soot.PackManager.access$000(PackManager.java:112)
> >       at soot.PackManager$1.run(PackManager.java:620)
> >       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> >       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> >       at java.lang.Thread.run(Thread.java:748)
> >  
> > I have attached the simple program on which I test jCute. Looking out for some clues for this.
> > 
> > -- 
> > Regards
> > Dhriti Khanna
> > PhD Scholar
> > IIIT Delhi
> > <Demo.java>_______________________________________________
> > Soot-list mailing list
> > Soot-list at CS.McGill.CA
> > https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> 
> 
> 
> -- 
> Regards
> Dhriti Khanna
> PhD Scholar
> IIIT Delhi



More information about the Soot-list mailing list