<div dir="ltr">Hi I have encountered some problem with spark:<div>My code is like this:</div><div><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:&#39;Source Code Pro&#39;;font-size:10.5pt">Options.<span style="font-style:italic">v</span>().set_src_prec(Options.<span style="color:#9876aa;font-style:italic">src_prec_apk</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_android_jars(androidpath)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_whole_program(<span style="color:#cc7832">true</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_verbose(<span style="color:#cc7832">false</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().setPhaseOption(<span style="color:#6a8759">&quot;cg.spark&quot;</span><span style="color:#cc7832">, </span><span style="color:#6a8759">&quot;on&quot;</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_output_format(Options.<span style="color:#9876aa;font-style:italic">src_prec_J</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_keep_line_number(<span style="color:#cc7832">true</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_keep_offset(<span style="color:#cc7832">true</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_allow_phantom_refs(<span style="color:#cc7832">true</span>)<span style="color:#cc7832">;<br></span>Options.<span style="font-style:italic">v</span>().set_process_dir(path_list)<span style="color:#cc7832">;<br></span>Scene.<span style="font-style:italic">v</span>().loadNecessaryClasses()<span style="color:#cc7832">;<br></span>Scene.<span style="font-style:italic">v</span>().setEntryPoints(entryPoints)<span style="color:#cc7832">;<br></span>PackManager.<span style="font-style:italic">v</span>().runPacks()<span style="color:#cc7832">;<br></span>PAG pag=(PAG)Scene.<span style="font-style:italic">v</span>().getPointsToAnalysis()<span style="color:#cc7832">;<br></span><span style="color:#cc7832"><br></span><span style="color:#cc7832"><br></span><span style="color:#808080">//for any method<br></span><span style="color:#cc7832">while </span>(stmtIt.hasNext()) {<br>    Unit u = (Unit) stmtIt.next()<span style="color:#cc7832">;<br></span><span style="color:#cc7832">    </span>Stmt stmt=(Stmt)u<span style="color:#cc7832">;<br></span><span style="color:#cc7832"><br></span><span style="color:#cc7832">    if</span>(stmt.containsInvokeExpr())<br>    {<br>        InvokeExpr exp = stmt.getInvokeExpr()<span style="color:#cc7832">;<br></span><span style="color:#cc7832">        if</span>(exp.getUseBoxes().size()&gt;<span style="color:#6897bb">1</span>)<br>        {<br>            Value l=exp.getUseBoxes().get(<span style="color:#6897bb">0</span>).getValue()<span style="color:#cc7832">;<br></span><span style="color:#cc7832">            if</span>(l <span style="color:#cc7832">instanceof </span>Local)<br>            {<br>                Node n=pag.findLocalVarNode((Local) l)<span style="color:#cc7832">;<br></span><span style="color:#cc7832">                </span>System.<span style="color:#9876aa;font-style:italic">out</span>.println(n)<span style="color:#cc7832">; </span><span style="color:#808080">//it is null<br></span><span style="color:#808080">                </span>PointsToSetInternal pset=(PointsToSetInternal)pag.reachingObjects((Local) l)<span style="color:#cc7832">;<br></span><span style="color:#cc7832">                </span>System.<span style="color:#9876aa;font-style:italic">out</span>.println(pset.size())<span style="color:#cc7832">; </span><span style="color:#808080">//the size is 0<br></span><span style="color:#808080"><br></span><span style="color:#808080">            </span>}<br><br><br><br>        }<br><br>    }<br>}</pre></div><div><br></div><div>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</div></div>