[Soot-list] Paddle: getting updated version of context sensitive call graph/points-to sets

Ondrej Lhotak olhotak at uwaterloo.ca
Fri Mar 18 16:09:24 EDT 2011


The only reliable way to clear the existing state of Soot (and Paddle)
that I'm aware of is with G.reset().

Ondrej

On Wed, Mar 16, 2011 at 11:28:03PM +0100, Christophe Foket wrote:
> Hello,
> 
> I was wondering what the best way is to rerun Paddle to get an updated 
> version of the context sensitive call graph/points to sets. I've tried using
> 
>        Scene.v().releaseReachableMethods();
>        Scene.v().releaseCallGraph();
>        Scene.v().releasePointsToAnalysis();
>        Scene.v().contextNumberer = null;
> 
>        PaddleOptions options = new PaddleOptions(paddleOptions);
>        PaddleTransformer paddleTransformer = PaddleTransformer.v();
>        paddleTransformer.setup(options);
>        paddleTransformer.solve(options);
> 
> where paddleOptions is a HashMap containing the same key-value mapping 
> as the options that were given to Soot.
> 
> However, this does not seem to be working, as some of the points-to sets 
> are empty after re-runing Paddle this way.
> For example, I have the following problem:
> 
>        Local local = ...
>        
> System.out.println(Scene.v().getPointsToAnalysis().reachingObjects(local).possibleTypes().size()); 
> // prints "1"
> 
>        Scene.v().releaseReachableMethods();
>        Scene.v().releaseCallGraph();
>        Scene.v().releasePointsToAnalysis();
>        Scene.v().contextNumberer = null;
> 
>        PaddleOptions options = new PaddleOptions(paddleOptions);
>        PaddleTransformer paddleTransformer = PaddleTransformer.v();
>        paddleTransformer.setup(options);
>        paddleTransformer.solve(options);
> 
>        
> System.out.println(Scene.v().getPointsToAnalysis().reachingObjects(local).possibleTypes().size()); 
> // prints "0"
> 
> Kind regards,
> 
> Christophe
> _______________________________________________
> 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