[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