[Pharo-dev] [ANN] Pointer Detective

Ben Coman btc at openInWorld.com
Tue Sep 2 13:40:59 EDT 2014


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PointerDetectiveExample1.png
Type: image/png
Size: 30441 bytes
Desc: not available
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20140903/a792c3b8/attachment-0001.png>


More information about the Pharo-dev mailing list