[Soot-list] The PointsToSets are empty for a simple case(SPARK)

Chris Pickett chris.pickett at mail.mcgill.ca
Wed Apr 18 20:33:44 EDT 2007


I just list all the classes I want to force on the command line, but 
that doesn't guarantee they'll get included in the call
graph.  (I think.)  There is some place in Soot with a hard-coded list 
of entry points, you can try looking for it with `grep -ir entry *'.

Chris

Peng Li wrote:
> HI Eric,
> Yes, you are correct!! The class is not reachable from the main-class
> (I didnot realize that the class is just a test case).
> 
> I am wonderng  if spark has any options to force it handle all the
> classes no matter if they are dead code? Currently, I just put a new
> line "JGradientChooser jgc = new JGradientChooser ()" into the main
> class to create a "fake" tie between the main class and
> JGradientChooser . Do you have a better way to do that? I did not find
> any helpful information from the online soot phase options.
> 
> Cheers
> Peng
> 
> 2007/4/17, Eric Bodden <eric.bodden at mail.mcgill.ca>:
>> Is the class you are looking at reachable? Soot usually only reports
>> empty points-to sets, if it's dead code, i.e. not reachable from your
>> main-class.
>>
>> Eric
>>
>> On 17/04/07, Peng Li <lipeng360 at gmail.com> wrote:
>> > HI
>> > I am using SPARK to analyse a simple GUI class. It is very simple,
>> > public class JGradientChooser extends JDialog
>> > {
>> > Color[] colors = { Color.WHITE, Color.BLACK };
>> > String[] elements = { "linear", "radial" };
>> >
>> > JComboBox combo1 = new JComboBox(elements);
>> > JComboBox combo2 = new JComboBox(elements1);
>> >
>> > AlphaColorJButton button_color1 = new AlphaColorJButton(colors[0]);
>> > AlphaColorJButton button_color2 = new AlphaColorJButton(colors[1]);
>> > //AlphaColorJButton is an GUI class that extends JButton.
>> >
>> > PreviewPanel preview_panel = new PreviewPanel(button_color1,
>> > button_color2,combo1,combo2);
>> > }
>> >
>> > The weird thing is when I use spark to get the PointsToSets for all
>> > the parameters of new PreviewPanel(button_color1,
>> > button_color2,combo1,combo2). The PointsToSets are all empty...
>> >
>> > specialinvoke $r43.<at.bestsolution.ext.swing.dialog.PreviewPanel:
>> > void 
>> <init>(at.bestsolution.ext.swing.AlphaColorJButton,at.bestsolution.ext.swing.AlphaColorJButton,javax.swing.JComboBox,javax.swing.JComboBox)>(r9, 
>>
>> > r11, r4, r8)
>> > r9 PointsToSet size is 0
>> > r11 PointsToSet size is 0
>> > r4 PointsToSet size is 0
>> > r8 PointsToSet size is 0
>> >
>> > I emailed this mailing-list before to ask why the PointsToSet for  the
>> > parameter of AlphaColorJButton button_color1 = new
>> > AlphaColorJButton(colors[0]); is empy. Eric replied me the reason is
>> > because the way how SPARK handles array element(color[0]). However,
>> > for the JGradientChooser, the result does not make sense since the
>> > parameters of PreviewPanel() are not array or array elements?
>> >
>> > I have tried many combinations of the spark options, but all of them
>> > did not work.
>> > cheers
>> > Peng
>> >
>> > PS.
>> > the spark options,
>> > opt.put("enabled","true");
>> > opt.put("verbose","true");
>> > opt.put("ignore-types","false");
>> > opt.put("force-gc","false");
>> > opt.put("pre-jimplify","false");
>> > opt.put("vta","false");
>> > opt.put("rta","false");
>> > opt.put("field-based","false");
>> > opt.put("types-for-sites","false");
>> > opt.put("merge-stringbuffer","true");
>> > opt.put("string-constants","false");   //
>> > opt.put("simulate-natives","true");
>> > opt.put("simple-edges-bidirectional","false");
>> > opt.put("on-fly-cg","true");     //     true
>> > opt.put("simplify-offline","false");
>> > opt.put("simplify-sccs","false");
>> > opt.put("ignore-types-for-sccs","false");
>> > opt.put("propagator","worklist"); //worklist
>> > opt.put("set-impl","double");
>> > opt.put("double-set-old","hybrid");
>> > opt.put("double-set-new","hybrid");
>> > opt.put("dump-html","false");
>> > opt.put("dump-pag","false");
>> > opt.put("dump-solution","false");
>> > opt.put("topo-sort","false");
>> > opt.put("dump-types","true");
>> > opt.put("class-method-var","true");
>> > opt.put("dump-answer","false");
>> > opt.put("add-tags","false");
>> > opt.put("set-mass","false");
>> > _______________________________________________
>> > Soot-list mailing list
>> > Soot-list at sable.mcgill.ca
>> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>> >
>>
>>
>> -- 
>> Eric Bodden
>> Sable Research Group
>> McGill University, Montréal, Canada
>>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list


More information about the Soot-list mailing list