[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