[Soot-list] Spark Points-to analysis
Armand Navabi
anavabi at purdue.edu
Wed Jul 18 17:38:23 EDT 2007
I am trying to use Soot's points-to analysis. I figured the best place
to go is the survivor's guide Points-to Analysis chapter
(http://www.brics.dk/~mis/soot.pdf). There they have an example that I
have implemented. In the example verbose option is set to true. I
think this is what makes it print out information as the analysis goes
along, except that when I run mine nothing prints out. Below is the
code. I am running the program like this:
java -Xmx512m -Xss256m analysis.pointsto.SparkExample
Perhaps I need extra command line arguments to Soot?
public class SparkExample
{
private static SootClass loadClass(String name, boolean main) {
SootClass c = Scene.v().loadClassAndSupport(name);
c.setApplicationClass();
if(main) Scene.v().setMainClass(c);
return c;
}
public static void main(String[] args)
{
loadClass("analysis.pointsto.Item", false);
loadClass("analysis.pointsto.Container", false);
SootClass c = loadClass("analysis.pointsto.SparkExample", true);
Map options = new HashMap();
options.put("verbose", "true");
options.put("propagator", "worklist");
options.put("simple-edges-bidirectional", "false");
options.put("on-fly-cg", "true");
options.put("set-impl", "hybrid");
options.put("double-set-old", "hybrid");
options.put("double-set-new", "hybrid");
SparkTransformer.v().transform("",options);
}
public void go() {
Container c1 = new Container();
Item i1 = new Item();
c1.setItem(i1);
Container c2 = new Container();
Item i2 = new Item();
c2.setItem(i2);
Container c3 = c2;
}
}
class Container {
private Item item = new Item();
void setItem(Item item) {
this.item = item;
}
Item getItem() {
return this.item;
}
}
class Item { Object data; }
Thanks,
Armand
More information about the Soot-list
mailing list