[Soot-list] Using the demand driven points-to analysis
Mihai Tarce
mihaitarce at yahoo.com
Mon Jul 13 15:07:32 EDT 2009
Hello,
I'm trying to use the Soot framework for determining points-to sets for certain fields. I'm running Soot in the way mentioned in the tutorial:
main(args) {
PackManager.v().getPack("jtp").add(...);
Options opt = soot.options.Options.v();
// enable cg.spark enabled, and cs-demand
soot.Main.main(args);
}
However, I'm having some problems. First of all, do I need to enable whole-program analysis in order to get Spark to work? I know Paddle requires it, but I didn't see it mentioned anywhere whether Spark needs it as well. If I don't enable it, I get the dumb pointer analysis version, and not demand driven implementation.
If I do enable whole program analysis, the analysis of even the simplest program takes almost a minute (because it parses all the java.* and com.sun.* packages). Can I make the whole program analysis not go through the library classes?
And, finally, I'm also encountering a lot of temp$ variables, which I thought (after reading this: http://www.sable.mcgill.ca/pipermail/soot-list/2009-April/002285.html) would go away by the time Spark analyzes the program. This is especially true of
array accesses, where arr[0] becomes temp$1[temp$2], which is pretty difficult to track.
I've tried finding some answers in the mailing list archives, but apart from the temp$ issue (which doesn't seem to be working for me, as I'm using the default options for Soot), I couldn't find the others.
Thank you,
Mihai
More information about the Soot-list
mailing list