<html><head></head><body><div style="color:#000; background-color:#fff; font-family:bookman old style, new york, times, serif;font-size:13px"><div id="yui_3_16_0_ym19_1_1475089522820_3445">Hi all,</div><div id="yui_3_16_0_ym19_1_1475089522820_3489"><br></div><div id="yui_3_16_0_ym19_1_1475089522820_3490" dir="ltr">I am using Soot to instrument Java classes. I am using the <a class="edited-link-editor" href="https://github.com/pcpratts/soot-rb/tree/master/tutorial/profiler2" id="yui_3_16_0_ym19_1_1475089522820_3697">InvokeStaticInstrumenter</a> example. However, I am going to instrument the blocks  instead of statements. So I am using the following instruction:</div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3763"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3868">BlockGraph blockGraph = new ExceptionalBlockGraph(body);<br id="yui_3_16_0_ym19_1_1475089522820_3856">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (Block block : blockGraph.getBlocks()) <br id="yui_3_16_0_ym19_1_1475089522820_3857">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br id="yui_3_16_0_ym19_1_1475089522820_3865">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; block.insertAfter(Jimple.v().newInvokeStmt(Jimple.v().newStaticInvokeExpr(<br id="yui_3_16_0_ym19_1_1475089522820_3866">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; increaseCounter.makeRef(), IntConstant.v(1))), block.getHead());<br id="yui_3_16_0_ym19_1_1475089522820_3867">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }</div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3881"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3960">But I get the following exception:</div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3911"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3912">Exception in thread "main" java.lang.RuntimeException: @param-assignment statements should precede all non-identity statements<br id="yui_3_16_0_ym19_1_1475089522820_3933">&nbsp;&nbsp;&nbsp; at soot.jimple.JimpleBody.validateIdentityStatements(JimpleBody.java:101)<br id="yui_3_16_0_ym19_1_1475089522820_3934">&nbsp;&nbsp;&nbsp; at soot.jimple.JimpleBody.validate(JimpleBody.java:67)<br id="yui_3_16_0_ym19_1_1475089522820_3935">&nbsp;&nbsp;&nbsp; at soot.Printer.printTo(Printer.java:322)<br id="yui_3_16_0_ym19_1_1475089522820_3936">&nbsp;&nbsp;&nbsp; at soot.Printer.printTo(Printer.java:221)<br id="yui_3_16_0_ym19_1_1475089522820_3937">&nbsp;&nbsp;&nbsp; at soot.PackManager.writeClass(PackManager.java:896)<br id="yui_3_16_0_ym19_1_1475089522820_3938">&nbsp;&nbsp;&nbsp; at soot.PackManager.writeOutput(PackManager.java:475)<br id="yui_3_16_0_ym19_1_1475089522820_3939">&nbsp;&nbsp;&nbsp; at soot.PackManager.writeOutput(PackManager.java:400)<br id="yui_3_16_0_ym19_1_1475089522820_3940">&nbsp;&nbsp;&nbsp; at soot.Main.run(Main.java:199)<br id="yui_3_16_0_ym19_1_1475089522820_3941">&nbsp;&nbsp;&nbsp; at soot.Main.main(Main.java:141)<br id="yui_3_16_0_ym19_1_1475089522820_3942">&nbsp;&nbsp;&nbsp; at Main.main(Main.java:62)</div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3951"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3974">Could any one help or had the same issue?</div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3975"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1475089522820_3976">Thanks<br></div><div id="yui_3_16_0_ym19_1_1475089522820_3758"><br></div><div id="yui_3_16_0_ym19_1_1475089522820_3791"><br></div></div></body></html>