[Soot-list] Not jimplify entire java standard library in whole-program mode

Manu Sridharan manu_s at eecs.berkeley.edu
Sun May 7 21:26:30 EDT 2006


Hi Thomas,

If you need a sound points-to analysis result for your application code, 
the library must be analyzed, for example to properly handle Vectors:

Object o = new Object(); // object o1
Vector v = new Vector();
v.add(o);
p = v.get(0);

Without analyzing the code of Vector, Spark will not discover that p can 
point to o1.  Similarly, you might miss important call graph information 
if the library is not analyzed, e.g., because of callbacks.  My guess is 
you'll just have to pay the full cost of Jimple construction on each 
run.  There have been discussions on this list about speeding up the 
Jimple construction phase, but it seems like a difficult software 
engineering problem.

-Manu

Thomas Finsterbusch wrote:
> As I understand it from the soot documentation and the mailing list archive, 
> soot looks at the entire standard library when running an analysis in 
> whole-proram mode. "Looking at" means it jimplifies the classes, but it does 
> not apply the jimple-phase transformations (at least not by default), since 
> they are considered library classes and not application classes. 
>
> Now, is it possible for me to turn off the jimplification process also? I want 
> to perform a data flow analysis on my own .class files, but I don't want the 
> overhead of indexing the entire standard library, which costs me about 2.5 
> minutes and 1GB of RAM every time I run my analysis with soot. I need to run 
> it in whole-program mode because I need access to the call graph and possibly 
> the spark points-to analysis.
>
> Am I overlooking something?
>
> --Thomas
> _______________________________________________
> 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