<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">Hi all, </div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">&nbsp; &nbsp; &nbsp;I use Soot to analyze java program. When it generate output .class files, the error incur.</div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">&nbsp; &nbsp; &nbsp;I use Soot will following command:</div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">
<ul>
<li>
<p class="p1">-no-bodies-for-excluded -cp /Users/tangchris/Documents/workspace/test/bin/:/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/jce.jar <span class="Apple-converted-space">&nbsp; </span>-W -p wjop enabled:true -p cg implicit-entry:false -p cg.spark enabled:true -keep-line-number -keep-bytecode-offset -f class test.SomeClass$Class1 test.SomeClass$Class2 test.SomeClass</p>
</li>
</ul>
&nbsp; &nbsp; &nbsp;<span style="background-color: #ffff00;">The error is</span></div>
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">
<ul>
<li>
<p class="p1">Writing to sootOutput/ .class</p>
<p class="p2"><span style="color: #ff0000;">Jasmin:2: Warning - Syntax error.</span>.</p>
<p class="p2">^Writing to sootOutput/test/SomeClass<span class="s1">$Class1.class</span></p>
<p class="p2"><span style="color: #ff0000;">Jasmin:2: Error - Couldn't repair and continue parse.</span></p>
<p class="p2">.^</p>
<p class="p2"><span style="color: #ff0000;">Jasmin: Found 2 errors</span></p>
</li>
<li><span style="color: #000000;">It is definitely fine for generate .jimp files.</span></li>
</ul>
<p><span style="color: #000000;">&nbsp; &nbsp; &nbsp;I don't know whether it is a potential bug or any problem when I use Soot command.</span></p>
<p><span style="color: #000000;">----------------attached file is the source code[in case of attachment not work, you can reference following]-------------------</span></p>
<p class="p1"><span class="s1">package</span><span class="s2"> test;</span></p>
<p class="p2">&nbsp;</p>
<p class="p3"><span class="s3">public</span><span class="s1"> </span><span class="s3">class</span><span class="s1"> SomeClass {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">static</span><span class="s1"> Class1 class1At;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">static</span><span class="s1"> Class2 class2At;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s3">public</span><span class="s1"> SomeClass(){</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>Class1 c1 = </span><span class="s3">new</span><span class="s1"> Class1();</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>class1At = c1;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>}</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">static</span><span class="s1"> </span><span class="s3">void</span><span class="s1"> main(String[]args) {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>SomeClass some = </span><span class="s3">new</span><span class="s1"> SomeClass();</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>Class1 c1 = </span><span class="s3">new</span><span class="s1"> Class1();</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>Class2 c2 = </span><span class="s3">new</span><span class="s1"> Class2();</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>some.class2At = c2;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">int</span><span class="s1"> x = class1At.intAt;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span>}</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s3">public</span><span class="s1"> Class2 crazyMethod() {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span>class1At.intAt=</span><span class="s4">5</span><span class="s1">;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">return</span><span class="s1"> class2At;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span>}</span></p>
<p class="p1"><span class="s2"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s1">public</span><span class="s2"> </span><span class="s1">static</span><span class="s2"> </span><span class="s1">class</span><span class="s2"> Class1 {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">int</span><span class="s1"> intAt;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">static</span><span class="s1"> Class2 cls;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> Class1() {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp;<span class="Apple-tab-span"> </span> </span>intAt = </span><span class="s4">1</span><span class="s1">;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp;<span class="Apple-tab-span"> </span> </span>cls = </span><span class="s3">new</span><span class="s1"> Class2();</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp;<span class="Apple-tab-span"> </span> </span>cls.intAt = </span><span class="s4">3</span><span class="s1">;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">&nbsp; &nbsp; </span>}</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span>}</span></p>
<p class="p1"><span class="s2"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span></span><span class="s1">public</span><span class="s2"> </span><span class="s1">static</span><span class="s2"> </span><span class="s1">class</span><span class="s2"> Class2 {</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> </span><span class="s3">int</span><span class="s1"> intAt;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> Class2 tm;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp; </span></span><span class="s3">public</span><span class="s1"> Class2(){</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp;<span class="Apple-tab-span"> </span> </span>intAt = </span><span class="s4">2</span><span class="s1">;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; &nbsp;<span class="Apple-tab-span"> </span> </span>tm = Class1.cls;</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span><span class="Apple-converted-space">&nbsp; &nbsp; </span>}</span></p>
<p class="p3"><span class="s1"><span class="Apple-tab-span"> </span> <span class="Apple-converted-space">&nbsp; </span>} </span></p>
<p class="p3"><span class="s1">}</span></p>
</div>
</body></html>