[Soot-list] Heros error while running jCute

Eric Bodden eric.bodden at uni-paderborn.de
Thu Jan 10 08:25:57 EST 2019


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



More information about the Soot-list mailing list