[Soot-list] Paddle: getting updated version of context sensitive call graph/points-to sets
Christophe Foket
christophe.foket at elis.ugent.be
Wed Mar 16 18:28:03 EDT 2011
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
More information about the Soot-list
mailing list