[Soot-list] Regarding Interprocedural Analysis

Richard L. Halpert richardlhalpert at gmail.com
Wed May 23 09:29:40 EDT 2007


Interprocedural analyses in Soot are written mostly by hand.  You could
start by choosing what your entry points will be (ie the main() method),
then invoking an analysis (derived from FlowAnalysis) on each.  Then,
wherever you encounter a callsite, your FlowAnalysis would need to generate
(or request from somewhere else) the result for the called method(s).  Note
that you would need to watch out for recursive programs if you use this
technique.

Another way to do this is to use the CallGraph as your starting point.
Generate information for each method (or each leaf method, or each entry
point), and propagate it through the call graph using whatever technique
fits your goals.

Your best bet is to look through the Soot code for examples of
interprocedural analysis.

-Rich

On 5/16/07, John Chaitanya Kati <johnkati at cse.iitb.ac.in> wrote:
>
> Hi,
>     I want to implement interprocedural analysis using call string
> approach. The problem i am facing is, soot analyses one complete method
> (calling function) before it switches to the called function. But i dont
> want it this way.
>
> if my main program is
>
> main()
> {
>    s1;
>    s2;
>    call f;
>    s3;
>    s4;
> }
>
> and the called function is
> f()
> {
>    s5;
>    s6;
> }
>
> i want it to be analysed in the seq
>
> s1; s2; s5; s6; s3; s4
>
> Can it be done ? please reply me back.
>
> Thanks in advance for any help
> John
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20070523/192971fe/attachment.htm


More information about the Soot-list mailing list