<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Thanks Manuel and Eric. jCute was indeed instrumenting the code in a way which is not approved by soot. </div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jan 10, 2019 at 6:55 PM Eric Bodden <<a href="mailto:eric.bodden@uni-paderborn.de">eric.bodden@uni-paderborn.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Dhriti.<br>
<br>
This error seems to have nothing to do with Heros. The problem to me looks as follows:<br>
<br>
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.<br>
<br>
It might help to take a look at the JimpleBody in question, e.g. by printing it out in a debugger.<br>
<br>
Best wishes<br>
Eric<br>
<br>
> On 10. Jan 2019, at 12:36, Dhriti Khanna <<a href="mailto:dhritik@iiitd.ac.in" target="_blank">dhritik@iiitd.ac.in</a>> wrote:<br>
> <br>
> Dear all,<br>
> <br>
> 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: <br>
> <br>
> [Thread-5] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: @this-assignment statement should precede all other statements<br>
> method: <tests.Struct: void <init>()><br>
> @this-assignment statement should precede all other statements<br>
> method: <tests.Struct: void <init>()><br>
> <br>
> I am not sure whether jCute requires heros framework, but still this error. I want to know when does someone bump into this error?<br>
> <br>
> This is the stack trace:<br>
> <br>
> method: <tests.Struct: void <init>()><br>
> at soot.jimple.validation.IdentityStatementsValidator.validate(IdentityStatementsValidator.java:51)<br>
> at soot.jimple.JimpleBody.validate(JimpleBody.java:114)<br>
> at soot.jimple.JimpleBody.validate(JimpleBody.java:97)<br>
> at cute.instrument.CuteInstrumenter.internalTransform(CuteInstrumenter.java:162)<br>
> at soot.BodyTransformer.transform(BodyTransformer.java:54)<br>
> at soot.Transform.apply(Transform.java:105)<br>
> at soot.BodyPack.internalApply(BodyPack.java:49)<br>
> at soot.Pack.apply(Pack.java:125)<br>
> at soot.PackManager.runBodyPacks(PackManager.java:973)<br>
> at soot.PackManager.access$000(PackManager.java:112)<br>
> at soot.PackManager$1.run(PackManager.java:620)<br>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)<br>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)<br>
> at java.lang.Thread.run(Thread.java:748)<br>
> <br>
> I have attached the simple program on which I test jCute. Looking out for some clues for this.<br>
> <br>
> -- <br>
> Regards<br>
> Dhriti Khanna<br>
> PhD Scholar<br>
> IIIT Delhi<br>
> <Demo.java>_______________________________________________<br>
> Soot-list mailing list<br>
> <a href="mailto:Soot-list@CS.McGill.CA" target="_blank">Soot-list@CS.McGill.CA</a><br>
> <a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" rel="noreferrer" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font size="1" color="#9900ff" face="arial, helvetica, sans-serif">Regards</font><div><font size="1" color="#9900ff" face="arial, helvetica, sans-serif">Dhriti Khanna</font></div><div><font size="1" color="#9900ff" face="arial, helvetica, sans-serif">PhD Scholar</font></div><div><font size="1" color="#9900ff" face="arial, helvetica, sans-serif">IIIT Delhi</font></div></div></div></div></div></div></div></div></div></div></div></div></div>