[Soot-list] Usage of context-sensitive PTAs

Quentin Sabah quentin.sabah at inria.fr
Tue Feb 5 11:56:13 EST 2013


Hi all,

I am wondering if I can find documentation or any example code showing 
the usage of context-sensitive points-to-analyses in Soot.

The PointsToAnalysis interface defines some methods taking a Context. 
The documentation states that a Context is either a unit or a Spark 
AllocNode. I would have expected to specify some kind of list of 
call-graph edge...

I naïvely tried to pass Stmt units when calling reachingObjects(), first 
using the demand-driven context-sensitive analysis of Spark, and then 
using the geometric analysis of Spark. However none of these experiments 
succeeded:

Given s an invocation statement of the form:
virtualinvoke r4.<MyClass: void myMethod(java.lang.Object)>(r5);
with r5 being of a reference type, I call pta.reachingObjects(s, r5).

- '-w -p -cg.spark' gives the context-insensitive answer as expected.
- using '-w -p cg.spark enabled,cs-demand', I simply get an 
UnsupportedOperationException (hard-coded in the sources).
- using '-w -p cg.spark enabled,geom-pta', I only get an EmptyPointsToSet.

Sooo I guess I'm "doing it wrong" (should I mention that I set 
-no-bodies-for-excluded for these little experiments). Any clue ?

Regards.

-- 
Quentin Sabah, CIFRE Ph.D. student
Grenoble University
INRIA-SARDES                   | STMicroelectronics/AST
Montbonnot, France             | Grenoble, France
mailto:quentin.sabah at inria.fr  | mailto:quentin.sabah at st.com
phone: +33 476 61 54 57        | phone: +33 476 58 44 14


More information about the Soot-list mailing list