<div dir="ltr">Hi Linghui,<div><br></div><div>Thanks a lot! It seems that I was able to run it as well. However, I still got some issues. When I run the given command (without "-pp", otherwise I get a "java.io.ObjectInputStream" Error), the program runs fine.</div><div><br></div><div>--graph=BriefBlockGraph -cp . -process-dir ..\...\myProject<br></div><div><br></div><div><div>When I run CFGViewer, it gives me the output below.</div></div><div><br></div><div><div><div>Soot started on Mon Jul 17 11:46:10 MSK 2017</div><div>Soot finished on Mon Jul 17 11:46:10 MSK 2017</div><div>Soot has run for 0 min. 0 sec.</div></div></div><div><br></div><div>But still, somehow I can't get any CFG output. I even tried it with "--multipages".</div><div><br></div><div>I have three thoughts about reasons that might problem. They might be true or not I am not sure. Maybe it might give you a clue as well.</div><div><br></div><div>1) I am not using rt.jar properly. (setting its path correctly?)</div><div><br></div><div>2) To generate a CFG, is it necessary to first create a jimple or any other representation to generate a CFG?</div><div><br></div><div>3) I am giving actually an eclipse created Java project directory as an input, which includes both .java and .class files.</div><div><br></div><div>Thanks again for all your help!</div><div><br></div><div>Best Regards,</div><div><br></div><div>Ekin</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-07-16 23:25 GMT+03:00 Linghui Luo <span dir="ltr"><<a href="mailto:linghui.luo@uni-paderborn.de" target="_blank">linghui.luo@uni-paderborn.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple">
<div class="m_3178920362410075509WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi Ekin,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Good news! In soot there is a main class called CFGViewer in the package soot.tools.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">You can use it to generate CFG from specified intermediate representation in dot files.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I have tried it and it works.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">To use it in the fastest way, you can download the sources files of soot and run soot.tools.CFGViewer.java with specific configurations.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Here are the options you may need. An example configuration is :</span>
<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">--graph=BriefBlockGraph -cp . -pp -process-dir ..\...\myProject<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black">CFGViewer options:</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> (When specifying the value for an '=' option, you only</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> need to type enough characters to specify the choice</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> unambiguously, and case is ignored.)</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas"><u></u> <u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> --alt-classpath PATH :</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> specifies the classpath from which to load classes</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> that implement graph types whose names begin with 'Alt'.</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> --graph={BriefUnitGraph|<wbr>ExceptionalUnitGraph|<wbr>CompleteUnitGraph|<wbr>TrapUnitGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> ClassicCompleteUnitGraph|<wbr>BriefBlockGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> ExceptionalBlockGraph|<wbr>CompleteBlockGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> ClassicCompleteBlockGraph|<wbr>ArrayRefBlockGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> ZonedBlockGraph|<wbr>AltArrayRefBlockGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> AltBriefUnitGraph|<wbr>AltCompleteUnitGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> AltTrapUnitGraph|<wbr>AltBriefBlockGraph|</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> AltCompleteBlockGraph|<wbr>AltZonedBlockGraph} :</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> show the specified type of graph.</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> Defaults to BriefUnitGraph.</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> --ir={jimple|baf|grimp|<wbr>shimple|viaShimpleJimple} :</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> create the CFG from the specified intermediate</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas;color:black"> representation. Defaults to jimple.</span><span style="font-size:10.0pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Best regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Linghui
<u></u><u></u></span></p>
<p class="MsoNormal"><a name="m_3178920362410075509__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></a></p>
<div>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Von:</span></b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Soot-list [mailto:<a href="mailto:soot-list-bounces@CS.McGill.CA" target="_blank">soot-list-bounces@CS.<wbr>McGill.CA</a>]
<b>Im Auftrag von </b>Linghui Luo<br>
<b>Gesendet:</b> Sonntag, 16. Juli 2017 11:07<br>
<b>An:</b> Ekincan Ufuktepe <<a href="mailto:ekincanufuktepe@gmail.com" target="_blank">ekincanufuktepe@gmail.com</a>>; <a href="mailto:soot-list@cs.mcgill.ca" target="_blank">soot-list@cs.mcgill.ca</a></span></p><div><div class="h5"><br>
<b>Betreff:</b> Re: [Soot-list] Problems While Trying to Generate CFG on Windows 7<u></u><u></u></div></div><p></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi Ekin,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">If you wanna use the wjap.purity phase, I think you should add:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">-w
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">–no-bodies-for-excluded <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">-p wjap.purity on <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">-p wjap.purity dump-intra:true
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">in front of
</span>-cp . -pp -process-dir ..\..\<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The option –p is to pack phases, it should followed by the phase and an option for it.
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">However, I never used this phase. I am not sure if you will get your expected CFG.dot. It seems to me that the .dot files generated by wjap.purity are annotated
analysis.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Anyone else know that if soot supports outputting a .dot CFG?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Best regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Linghui
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Von:</span></b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Ekincan Ufuktepe [<a href="mailto:ekincanufuktepe@gmail.com" target="_blank">mailto:ekincanufuktepe@gmail.<wbr>com</a>]
<br>
<b>Gesendet:</b> Freitag, 14. </span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Juli 2017 23:52<br>
<b>An:</b> Linghui Luo <</span><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif"><a href="mailto:linghui.luo@uni-paderborn.de" target="_blank"><span lang="EN-US">linghui.luo@uni-paderborn.de</span></a></span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">><br>
<b>Betreff:</b> Re: [Soot-list] Problems While Trying to Generate CFG on Windows 7<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hello Linghui,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks for the quick response and advice!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">It seems that using "-allow-phantom-refs" worked well. What I did is;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">java -cp soot-2.5.0.jar soot.Main -allow-phantom-refs -cp . -process-dir ..\..\myJavaProject<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Also, I might have forgotten to mention it, but "myJavaProject" contains both source and bytecode. Therefore, it worked anyways.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">So my next step is to generate a CFG. Since that I wanted a CFG output of "myJavaProject", having a .DOT output would be nice. On the phase option list, it looks like to get a .DOT control-flow graph "wjap.purity" is the only option. When
I give the following command below, unfortunately I don't get any .DOT file. Or maybe I am using the wrong phaseName to generate a CFG of "myJavaProject"?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">java -cp soot-2.5.0.jar soot.Main -allow-phantom-refs -cp . -pp -process-dir ..\..\myJavaProject -dump-cfg wjap.purity<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Best Regards,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Ekin<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">2017-07-14 17:24 GMT+03:00 Linghui Luo <<a href="mailto:linghui.luo@uni-paderborn.de" target="_blank">linghui.luo@uni-paderborn.de</a>><wbr>:<u></u><u></u></p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Hi Ekin,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="m_3178920362410075509m-841723444829121831msolistparagraph"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">1.</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Are you sure in your target directory there are .class files which contains the java bytecode of your source codes? Since you mentioned that you proceed a .java file. Soot
processes java byte code and transforms it into Jimple.</span><u></u><u></u></p>
<p class="m_3178920362410075509m-841723444829121831msolistparagraph"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">2.</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">I think one reason for this kind of error
</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span>Error: Exception in thread "main" java.lang.RuntimeException: couldn't load classfile: java.io.ObjectInputStream<u></u><u></u></p>
<p class="MsoNormal" style="text-indent:36.0pt">
<span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">is that this class is seen as a phantom class to soot<a name="m_3178920362410075509_m_-841723444829121831__MailEndCompose">, since it’s a native class of java. Therefore, I will suggest you to add
</a></span><u></u><u></u></p>
<p class="MsoNormal" style="text-indent:36.0pt">
<span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">the option “–allow-phantom-refs”.
</span><u></u><u></u></p>
<p class="m_3178920362410075509m-841723444829121831msolistparagraph"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">3.</span><span style="font-size:7.0pt;color:#1f497d">
</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">You can use soot as a library by just downloading the nightlybuild</span><u></u><u></u></p>
<p class="MsoNormal"><a href="https://soot-build.cs.uni-paderborn.de/nightly/soot/" target="_blank"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">https://soot-build.cs.uni-<wbr>paderborn.de/nightly/soot/</span></a><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Best regards,</span><u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Linghui
</span><u></u><u></u></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Von:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Soot-list [mailto:<a href="mailto:soot-list-bounces@CS.McGill.CA" target="_blank">soot-list-bounces@CS.<wbr>McGill.CA</a>]
<b>Im Auftrag von </b>Ekincan Ufuktepe<br>
<b>Gesendet:</b> Freitag, 14. Juli 2017 15:09<br>
<b>An</b></span><b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">:</span></b><span lang="DE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">
<a href="mailto:soot-list@cs.mcgill.ca" target="_blank">soot-list@cs.mcgill.ca</a><br>
<b>Betreff:</b> [Soot-list] Problems While Trying to Generate CFG on Windows 7</span><u></u><u></u></p>
<div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Hi,<u></u><u></u></p>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I have been trying to generate a CFG (control-flow graph) by using Soot. First I tried to run Soot on command-line and I have been following the instruction on the link.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Here are a couple of trials I have made and the errors I have received.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">1)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Command: java -cp soot-2.5.0.jar soot.Main -cp . -process-dir ..\....\myJavaProject<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Error: Exception in thread "main" java.lang.RuntimeException: couldn't find class: xxx.yyy.zzz.MyClass (is your soot-class-path set properly?)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">"xxx.yyy.zzz.MyClass" is one of the package and class information that is in "myJavaProject"<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">2)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Command: Command: java -cp soot-2.5.0.jar soot.Main -cp . -pp -process-dir ..\....\myJavaProject<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Error: Exception in thread "main" java.lang.RuntimeException: couldn't load classfile: java.io.ObjectInputStream<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">==============================<wbr>===============<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">However, when I try to process a single .java file within the same directory with soot-2.5.0.jar I get a different error.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">3)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Command: java -cp soot-2.5.0.jar soot.Main -cp . MyClass<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Error: Exception in thread "main" java.lang.Error: Error loading java.util.regex.Pattern<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">So tried to use by giving rt.jar's path.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">4) Command: java -cp soot-2.5.0.jar soot.Main -cp . ..\...\Java\jre1.8.0_111\lib\<wbr>rt.jar MyClass<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Error: Exception in thread "main" java.lang.RuntimeException: couldn't find class: ..\...\Java\jre1.8.0_111\lib\<wbr>rt.jar (is your soot-class-path set properly?)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Or another option<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">5) Command: java -cp soot-2.5.0.jar soot.Main -cp . -pp MyClass<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Error: Exception in thread "main" java.lang.RuntimeException: couldn't load classfile: java.io.ObjectInputStream<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">I wanted to generate a CFG by using the "dump-cfg", but it seems that I got stuck with the basics. I would really appreciate any with to generate a CFG of a Java project.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Or rather than running Soot on command-line, is it possible to generate a CFG by using soot-2.5.0.jar as a library. If yes, could you please show me how to do it?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks in advance.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Ekin<u></u><u></u></p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div></div>
</div>
</blockquote></div><br></div>