[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