[Soot-list] Type of genenrated call graph

Richard Xiao richardxx at cse.ust.hk
Thu May 31 16:50:53 EDT 2012


The soot default call graph returned by scene.v().getCallGraph() is
actually a context insensitive call graph. The CHA algorithm or even the
SPARK points-to analysis both create the insensitive call graph. The
context sensitive call graph is maintained as an internal graph in the
Paddle subsystem, as well as other algorithms such as geom-pta and
cs-demand. However, these internal representations are not visible to the
clients.

In fact, it's very easy to make a context sensitive call graph yourself.
For example, if you want to make a 1-CFA call graph, you only need to make
a fresh cloning of the function foo (cloning all of its code) at each of
the callsite to foo, with the context insensitive call graph obtained
by scene.v().getCallGraph().

Regards,
richardxx

On Fri, Jun 1, 2012 at 12:18 AM, Clarissa Grixti
<clarissa_14_4 at hotmail.com>wrote:

>  Hey all,
>
> I am currently doing my research about call graphs, and came across a
> paper by Grove ("Call Graph Construction in Object-Oriented Languages"
> maybe you've came across it) where it states that a call graph can be
> context sensitive or insensitive. I managed to generate a call graph by
> soot using CHA and I noticed that there were more than one target for the
> same method but i did not manage to get the types. Does soot actually
> produce context sensitive call graphs?
>
> Thanks and regards,
> clarissa
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>


-- 
Richard Xiao Xiao
PhD Student @ CSE @ Hong Kong University of Science and Technology
www.cse.ust.hk/~richardxx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120601/a8e5262b/attachment.html 


More information about the Soot-list mailing list