[Soot-list] Various questions
Evan Driscoll
driscoll at cs.wisc.edu
Thu Apr 28 18:37:36 EDT 2011
I'm interested in using Soot as a front end. Specifically, I'd like it
to do pointer analysis for me to build a call graph, then I want to walk
over the interprocedural CFG. Essentially I'm transforming the CFG into
a form that I can feed to some existing code, so I'm not doing
transformations at all, and I'm not really doing dataflow analysis.
The most useful information I got is from a combination of "using soot
to instrument a class file" [1] and the "survivor's guide" [2]. The
skeleton of the code I have now is from [1]: I have a main function
which adds my class to the 'jtp' pack, and then my class extends
'BodyTransformer'. My 'internalTransform' function builds and traverses
the intraprocedural CFG, and also looks at Scene.v().getCallGraph() to
know possible targets for function calls.
My questions:
1. It seems weird to use a 'BodyTransformer' when I'm not transforming.
Is there something better to use?
2. What pack should I use? Should I leave it in 'jtp', or move it to
'wjtp'? Or something else, like 'wjap'?
3. If I turn on one of the fancier pointer analysis options (e.g.
'-p cg.spark enabled:true'), presumably the code will just start
taking advantage of the increased precision. Is this true?
4. Does it sound like what I'm doing is pretty reasonable in the first
place, or is there some easier way that I'm missing?
Thanks for your help,
Evan
[1] http://www.sable.mcgill.ca/soot/tutorial/profiler2/index.html
[2] http://www.brics.dk/SootGuide/
More information about the Soot-list
mailing list