Also, would be nice to filter out StrongPointerExplorerWrapper instances.

On Tue, Sep 2, 2014 at 5:09 PM, Mariano Martinez Peck <marianop...@gmail.com
> wrote:

> BTW , +1 to the ability of open an inspect on a node.
>
>
> On Tue, Sep 2, 2014 at 5:05 PM, Mariano Martinez Peck <
> marianop...@gmail.com> wrote:
>
>> Hi Ben,
>>
>> Very nice tool! Thank you very much for it.
>>
>> Question....do you think it is possible to add a feature that it
>> automatically builds the whole graph starting at target object until the GC
>> root that is holding it? In Pharo, the GC root is the special object array
>> (see #newSpecialObjectsArray).
>> So the code should basically do a loop for #pointersTo and check if one
>> of those pointers is directly one of the array. Or something like that
>> like.
>> Probably it will crash the VM hahaha. But it would be nice to track from
>> a certain object up to the GC root and see all that path in graph :)
>>
>>
>>
>>
>>
>> On Tue, Sep 2, 2014 at 4:41 PM, Yuriy Tymchuk <yuriy.tymc...@me.com>
>> wrote:
>>
>>> Oh yes, this is essential part of “working with objects”. No?
>>>
>>>
>>> On 02 Sep 2014, at 21:37, Max Leske <maxle...@gmail.com> wrote:
>>>
>>> > You are my hero! I was just complaining about that to Doru at ESUG.
>>> This sort of tool should be part of the standard tool set so please keep on
>>> improving it and we’ll try to convince someone to integrate it :)
>>> >
>>> > Max
>>> >
>>> > On 02.09.2014, at 19:40, Ben Coman <b...@openinworld.com> wrote:
>>> >
>>> >> greetings all,
>>> >>
>>> >> I had an itch to scratch...  I find it difficult using the tree list
>>> of the standard Pointer Explorer to track down why objects aren't garbage
>>> collected.  I always fear I'm not going to notice getting caught in a
>>> reference loop.  So I created a tool presenting an alternative view as a
>>> directed graph.  The graph incrementally builds out from the target object
>>> as you explore it. Nodes are colourised to help manage complexity.
>>> >>
>>> >> The attached snapshot is produced from evaluating the following
>>> Workspace script...
>>> >>  testObject := 'END5'.
>>> >>  ref1 := { testObject. nil }.
>>> >>  ref2 := { ref1 }.
>>> >>  ref3 := PDTestResource new heldObject: ref2.
>>> >>  ref1 at: 2 put: ref3.  "note the reference loop this creates"
>>> >>  PointerDetective openOn: testObject.
>>> >>
>>> >> Now I expect I'm duplicating something done before, but I couldn't
>>> find anything quickly and it was an opportunity for some goal direct
>>> learning of Morphic. Thanks to Roassal an option for a spring-force layout
>>> is provided. That code was copied rather than create a dependency, and
>>> might need to be rationalized later.
>>> >> The code is a bit rough from hacking around learning how to make
>>> things work, but its functional, so its time to get it out in the open.
>>> >>
>>> >> For more information please refer to the repository home page...
>>> >> http://smalltalkhub.com/#!/~BenComan/PointerDetective
>>> >>
>>> >> cheers -ben
>>> >> <PointerDetectiveExample1.png>
>>> >
>>> >
>>>
>>>
>>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>



-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to