[Soot-list] Diff between whole-progam mode and...

Marc-Andre Laverdiere-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Wed Jan 16 10:47:46 EST 2013


Hello Zeinab,

I was almost done writing this email when I saw Eric's latest reply - so 
this information is mostly redundant - but you may still find my reply 
useful :D

A flow sensitive data flow analysis is not the same thing as an analysis 
of only the control flow. In fact, all data flow analyses are concerned 
by the control flow. If you look at the canonical data flow equations, 
you'll see that we look at predecessors or successors - that is from the 
control flow.

I would guess that an example of what Eric wrote would be to calculate 
some software metrics. In that case, you don't need to follow the flow 
of data in your program, you just need to see its structure.

For such an application, IFDS is clearly overkill.

Note that IFDS is only one way of doing an interprocedural analysis - it 
happens to be the best one in my opinion. I am saying that because a) it 
transforms the problem to a simple problem (graph reachability) and b) 
it is very general.

There are other ways to do it, one of which is by using map and unmap of 
points-to information. This method may or may not as broadly applicable 
as IFDS - but the McGillites would know ;)

Here is a reference to that very good paper: Context-Sensitive 
Interprocedural Points-to Analysis in the Presence of Function Pointers 
(1994) by Maryam Emami , Rakesh Ghiya , Laurie J. Hendren
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.25.6013

P.S. The paper predates Soot by a big margin - has this framework ever 
been implemented in Soot?

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 13-01-16 10:10 AM, Zeinab Lashkaripour wrote:
> Hi Eric,
> Thanks for you detailed reply.
> But there was a sentence in your reply that confused me a bit.
> ".. for instance, you are interested only in analyzing control flow then
> IFDS/IDE would be the wrong tool,..."
> When we want data flow analysis which is flow sensitive, we use the
> control flow which means we analyze the control flow. Do these 2
> sentences have contrast?
>
> Cheers,
>
> ----- Original Message -----
> From: Eric Bodden <eric.bodden at ec-spride.de>
> To: Zeinab Lashkaripour <lashkaripour at yahoo.com>
> Cc: "soot-list at sable.mcgill.ca" <soot-list at sable.mcgill.ca>
> Sent: Wednesday, January 16, 2013 6:19 PM
> Subject: Re: [Soot-list] Diff between whole-progam mode and...
>
> Hello.
>
> whole-progam mode just tells Soot to build a call graph, and points to
> sets for a "whole program", typically indicated by the transitive
> closure of methods reachable from a main method. It does not do
> anything else, in particular it does not tell Soot which actual
> analyses to run or how.
> IFDS/IDE is a framework for defining specialized inter-procedural
> data-flow analyses that run within Soot's whole-program mode. Using
> IFDS/IDE makes sense if data-flow analysis is what you want. But if,
> for instance, you are interested only in analyzing control flow then
> IFDS/IDE would be the wrong tool, while you may still be wanting to
> use whole-program mode.
>
> Eric
>
> On 16 January 2013 15:34, Zeinab Lashkaripour <lashkaripour at yahoo.com
> <mailto:lashkaripour at yahoo.com>> wrote:
>  > Dear Reader,
>  > I would be glad if someone could tell me what is the Difference between
>  >    1) whole-progam mode of Soot and
>  > 2) IFDS/IDE and Soot
>  > in Inter-procedural Data-flow Analysis?
>  >
>  > Best Regards,
>  >
>  >
>  > _______________________________________________
>  > Soot-list mailing list
>  > Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
>  > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>  >
>
>
>
> --
> Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
> Head of Secure Software Engineering Group at EC SPRIDE
> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>
>
> _______________________________________________
> 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