<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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Source Code Pro";
        panose-1:2 11 5 9 3 4 3 2 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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;
        mso-fareast-language:DE;}
span.E-MailFormatvorlage19
        {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 Ding,<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'>You are trying to use SPARK on an Android app. SPARK requires an entry point which Android applications, however, do not have. Android apps instead tightly integrate with the Android OS using a pre-defined lifecycle. One approach to build a callgraph for Android apps is thus to generate a dummy entry point (i.e., main method) which simulates the interactions between the app and the OS. You can build such a dummy main method using FlowDroid as follows:<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SetupApplication app = new SetupApplication<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&quot;D:/Tools/adt-bundle-windows-x86_64-20140321/sdk/platforms&quot;,<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;D:/Temp/com.tweakersoft.aroundme-1.apk&quot;);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.calculateSourcesSinksEntrypoints(&quot;D:/Arbeit/Android Analyse/soot-infoflow-android/SourcesAndSinks.txt&quot;);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soot.G.reset();<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Options.v().set_src_prec(Options.src_prec_apk);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_process_dir(Collections.singletonList(&quot;D:/Temp/com.tweakersoft.aroundme-1.apk&quot;));<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_android_jars(&quot;D:/Tools/adt-bundle-windows-x86_64-20140321/sdk/platforms&quot;);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_whole_program(true);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_allow_phantom_refs(true);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_output_format(Options.output_format_class);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().setPhaseOption(&quot;cg.spark&quot;, &quot;on&quot;);<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SootMethod entryPoint = app.getEntryPointCreator().createDummyMain();<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options.v().set_main_class(entryPoint.getSignature());<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Scene.v().setEntryPoints(Collections.singletonList(entryPoint));<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(entryPoint.getActiveBody());<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PackManager.v().runPacks();<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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JimpleBasedInterproceduralCFG icfg = new JimpleBasedInterproceduralCFG();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(Scene.v().getCallGraph().size()); <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>Ding Li<br><b>Gesendet:</b> Dienstag, 7. Juli 2015 04:01<br><b>An:</b> soot-list@CS.McGill.CA<br><b>Betreff:</b> [Soot-list] Recarding spark<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>Hi I have encountered some problem with spark:<o:p></o:p></p><div><p class=MsoNormal>My code is like this:<o:p></o:p></p></div><div><pre style='background:#2B2B2B'><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_src_prec(Options.</span><i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#9876AA'>src_prec_apk</span></i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_android_jars(androidpath)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_whole_program(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>true</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_verbose(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>false</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().setPhaseOption(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#6A8759'>&quot;cg.spark&quot;</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>, </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#6A8759'>&quot;on&quot;</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_output_format(Options.</span><i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#9876AA'>src_prec_J</span></i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_keep_line_number(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>true</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_keep_offset(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>true</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_allow_phantom_refs(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>true</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Options.<i>v</i>().set_process_dir(path_list)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Scene.<i>v</i>().loadNecessaryClasses()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Scene.<i>v</i>().setEntryPoints(entryPoints)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>PackManager.<i>v</i>().runPacks()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>PAG pag=(PAG)Scene.<i>v</i>().getPointsToAnalysis()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br><br><br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:gray'>//for any method<br></span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>while </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>(stmtIt.hasNext()) {<br>    Unit u = (Unit) stmtIt.next()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br>    </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Stmt stmt=(Stmt)u</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br><br>    if</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>(stmt.containsInvokeExpr())<br>    {<br>        InvokeExpr exp = stmt.getInvokeExpr()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br>        if</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>(exp.getUseBoxes().size()&gt;</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#6897BB'>1</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>)<br>        {<br>            Value l=exp.getUseBoxes().get(</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#6897BB'>0</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>).getValue()</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br>            if</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>(l </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>instanceof </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>Local)<br>            {<br>                Node n=pag.findLocalVarNode((Local) l)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br>                </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>System.</span><i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#9876AA'>out</span></i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>.println(n)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>; </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:gray'>//it is null<br>                </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>PointsToSetInternal pset=(PointsToSetInternal)pag.reachingObjects((Local) l)</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>;<br>                </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>System.</span><i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#9876AA'>out</span></i><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>.println(pset.size())</span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#CC7832'>; </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:gray'>//the size is 0<br><br>            </span><span style='font-size:10.5pt;font-family:"Source Code Pro";color:#A9B7C6'>}<br><br><br><br>        }<br><br>    }<br>}<o:p></o:p></span></pre></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>I initialize soot with the first half, and then for any methods, I check the PointedToSet for the first arg of each method invocation. However, for any , I always get size of 0 in the PointedToSet and the Node of the argument in PAG is always null. I think at list the PointedToSet should contain the variable itself and the size should be at least 1, instead of empty. I am not quite sure where is wrong here, what should I set in oder to get pag.reachingObjects return a non-empty set? Thanks<o:p></o:p></p></div></div></div></body></html>