<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Pegah,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Your Soot initialization is wrong. Before you can load any custom classes, you first need to load the basic ones using Scene.v().loadNecessaryClasses(). Additionally, force-resolving classes is not the preferred way to make sure that a class gets loaded. If you want to do it all manually (see below for a better way), you should use Scene.v().addBasicClass(…) before you call Scene.v().loadNecessaryClasses().<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>If you just need a unit graph, it might be easier to simply register a transformer and then all Soot’s main method which will perform the required initializations for you. For examples on how to use Soot in a more standard way, you can refer to the tutorials in our blog: <a href="http://sseblog.ec-spride.de/tutorials/">http://sseblog.ec-spride.de/tutorials/</a>  The tutorial refers to instrumentation, but for the basics it does not matter whether you want to change or just read out the data from your target program.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Best regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>  Steven<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> soot-list-bounces@CS.McGill.CA [mailto:soot-list-bounces@CS.McGill.CA] <b>Im Auftrag von </b>Pegah Jandaghi<br><b>Gesendet:</b> Dienstag, 23. Juni 2015 00:38<br><b>An:</b> Soot-list@CS.McGill.CA<br><b>Betreff:</b> [Soot-list] Soot unable to load class<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>Hi everyone<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>I'm trying to create Unit graph for classes of a java library. I use the following code for building this graph:<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p class=MsoNormal>String sep = File.separator;<o:p></o:p></p></div><div><p class=MsoNormal>String pathSep = File.pathSeparator;<o:p></o:p></p></div><div><p class=MsoNormal>String path =System.getProperty(&quot;java.home&quot;) + sep + &quot;lib&quot; + sep + &quot;rt.jar&quot; pathSep;<o:p></o:p></p></div><div><p class=MsoNormal>path += System.getProperty(&quot;java.home&quot;) + sep+&quot;lib&quot; + sep + &quot;jce.jar&quot;;<o:p></o:p></p></div><div><p class=MsoNormal>path &nbsp;+= pathSep + classPath;<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Options.v().set_soot_classpath(path);<o:p></o:p></p></div><div><p class=MsoNormal>Options.v().set_keep_line_number(true);<o:p></o:p></p></div><div><p class=MsoNormal>Options.v().setPhaseOption(&quot;jb&quot;, &quot;use-original-names:true&quot;);<o:p></o:p></p></div><div><p class=MsoNormal>SootClass sClass = Scene.v().forceResolve(className, SootClass.BODIES);<o:p></o:p></p></div><div><p class=MsoNormal>sClass.setApplicationClass();<o:p></o:p></p></div><div><p class=MsoNormal>Scene.v().allowsPhantomRefs(); <o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>sClass.getMethodByName(methodName).retrieveActiveBody();<o:p></o:p></p></div><div><p class=MsoNormal>Body body = sootMethod.retrieveActiveBody();<o:p></o:p></p></div><div><p class=MsoNormal>UnitGraph graph = new EnhancedUnitGraph(body);<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>This code works for some classes but gives following exception on on line &quot;SootClass sClass = Scene.v().forceResolve(className, SootClass.BODIES);&quot;<o:p></o:p></p></div><div><p class=MsoNormal>for some other classes.&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p class=MsoNormal>Exception in thread &quot;main&quot; soot.CompilationDeathException: there were errors during parsing and/or type checking (JastAdd frontend)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:63)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.JavaClassSource.resolve(JavaClassSource.java:54)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.SootResolver.bringToHierarchy(SootResolver.java:215)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.SootResolver.processResolveWorklist(SootResolver.java:155)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.SootResolver.resolveClass(SootResolver.java:124)<o:p></o:p></p></div><div><p class=MsoNormal>at soot.Scene.forceResolve(Scene.java:1279)<o:p></o:p></p></div><div><p class=MsoNormal>at automatic.main(automatic.java:69)<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Does anyone knows why this gives exception for some classes?<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Thanks for help<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></div></body></html>