[Soot-list] Thread-sensitive points-to analysis

Richard L. Halpert richardlhalpert at gmail.com
Mon Nov 14 17:13:40 EST 2011


The idea was to use thread entry-points (calls to thread.start()) as the
only elements of the context (ignoring all other method calls).  The hope
was that it would identify a non-trivial set of heap locations that are
only accessible from one context, which could then be used at runtime to
determine that certain objects are thread-local.

It occurs to me now that if you got this working, you'd probably have
trouble drawing any real conclusions from it (because of course one thread
start point could launch multiple threads, so it would still be difficult
to actually declare that anything is thread-local).  I ended up
implementing thread local objects analysis using whole-program data flow
analysis instead, because it allowed me to determine when something has
escaped the thread, even if it's to another thread of the same type.

-Richard

On Sat, Nov 12, 2011 at 2:48 PM, Khilan Gudka <khilan at doc.ic.ac.uk> wrote:

> Hi Richard,
>
> Do you remember how it works?
>
> --
> Khilan Gudka
> PhD Student
> Department of Computing
> Imperial College London
> http://www.doc.ic.ac.uk/~khilan/
>
>
>
> On 12 November 2011 22:45, Richard L. Halpert <richardlhalpert at gmail.com>wrote:
>
>> Oh, and the idea was to try to find thread-local objects.
>>
>> -Richard
>> On Nov 12, 2011 2:43 PM, "Richard L. Halpert" <richardlhalpert at gmail.com>
>> wrote:
>>
>>> Khilan,
>>> I started to implement that back in 2006 or so, but I didn't get very
>>> far before being pulled away to other things.  I still think it would be
>>> interesting to try.
>>>
>>> -Richard
>>> On Nov 12, 2011 2:28 PM, "Khilan Gudka" <khilan at doc.ic.ac.uk> wrote:
>>>
>>>> Dear all,
>>>>
>>>> I was wondering if anyone (Ondrej?) could please provide some info on
>>>> the thread-entry-point context sensitivity option in paddle. I see that
>>>> there is a branch for it in the paddle svn repo but i haven't tried it yet.
>>>> The option appears in the trunk version of paddle but when I enable it,
>>>> using context:threadkobjsens, I get the following exception:
>>>>
>>>> Exception in thread "main" java.lang.RuntimeException: Unhandled kind
>>>> of context
>>>> at soot.jimple.paddle.PaddleTransformer.setup(PaddleTransformer.java:80)
>>>>  at
>>>> soot.jimple.paddle.PaddleTransformer.internalTransform(PaddleTransformer.java:45)
>>>> at soot.SceneTransformer.transform(SceneTransformer.java:39)
>>>>  at soot.jimple.paddle.PaddleHook.internalTransform(PaddleHook.java:43)
>>>> at soot.SceneTransformer.transform(SceneTransformer.java:39)
>>>>  at soot.Transform.apply(Transform.java:89)
>>>> at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
>>>>  at
>>>> soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
>>>> at soot.Pack.apply(Pack.java:114)
>>>>  at soot.PackManager.runWholeProgramPacks(PackManager.java:417)
>>>> at soot.PackManager.runPacks(PackManager.java:336)
>>>>  at soot.Main.run(Main.java:198)
>>>> at soot.Main.main(Main.java:141)
>>>>
>>>> So it is not available in the trunk version. What exactly does this
>>>> option do and how much of it is implemented? What does it give me?
>>>>
>>>> Thanks
>>>> Khilan
>>>>
>>>>  --
>>>> Khilan Gudka
>>>> PhD Student
>>>> Department of Computing
>>>> Imperial College London
>>>> http://www.doc.ic.ac.uk/~khilan/
>>>>
>>>>
>>>> _______________________________________________
>>>> Soot-list mailing list
>>>> Soot-list at sable.mcgill.ca
>>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>>
>>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20111114/d161a000/attachment.html 


More information about the Soot-list mailing list