[Soot-list] paddle results in soot
Ondrej Lhotak
olhotak at uwaterloo.ca
Mon Sep 25 16:57:59 EDT 2006
On Mon, Sep 25, 2006 at 04:28:35PM -0400, Raul Santelices wrote:
> Ondrej Lhotak wrote:
>
> On Mon, Sep 25, 2006 at 03:15:24PM -0400, Raul Santelices wrote:
>
>
> Hi,
> I am trying to access the contexts for an instance field, as computed
> by paddle with object-sensitive analysis. I use
> Scene.v().getPointsToAnalysis().reachingObjects(SootField). I cast the
> resulting PointsToSet to PointsToSetReadOnly (a paddle class), which
> provides the forall method to visit all ContextAllocNodes (pairs
> context-node) associated to the points-to set. Unfortunately, all
> ContextAllocNodes have a null context, and only the node (pointed object
> named after its creation site) is non-null.
> So, is it possible to retrieve contexts in Java without having to
> write BDD queries in Jedd?
>
>
> By default, only pointer variables (VarNodes) are modelled
> context-sensitively. The context-heap option to Paddle causes it to also
> model heap objects (AllocNodes) context-sensitively. Are you using the
> context-heap option?
>
>
> No, I wasn't. I turned it on, and now I get contexts for allocation sites.
>
> What I am really looking for is to list the contexts of a pointer
> variable, and obtain the points-to set of that var for each context. For
> object-sensitivity level 1, it seems that I can call getBase() on the
> InstanceFieldRef and obtain the (level 0) points-to set for that Local,
> right?
Each VarNode has a method called contexts(), which returns an iterator
over all ContextVarNodes that have been created for this variable.
> (how do I find a context for k > 1, by the way?)
The Context implementation in this case is a ContextString, which
contains the string of abstract objects making up the context.
Ondrej
>
> Thanks,
> Raul
> _______________________________________________
> 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