Hi,

when we were trying to fix memory leaks in the system in last weeks, it was
very handy to create a small tool that shows a shortest path of backward
references from one object to another one. Our tool is named RefsHunter and
you can find it in the Catalog of Pharo 5.

You can use Gofer if you want to load it without tests to the minimal Pharo:

Gofer new
smalltalkhubUser: 'PavelKrivanek' project: 'RefsHunter';
package: 'RefsHunter-Core';
load.

The RefsHunter creates a temporary snapshot of all objects in the image and
then collects information about all non-weak backward references. After
that you can ask on the shortest path from one object to another one. That
is useful for example when you still have got some leaking instance in the
image and you want to see how is it linked with the global space.

Example:

| rh |
rh := RefsHunter snapshot.
rh wayFrom: (Array>>#asArray) to: Smalltalk specialObjectsArray.

Notice that this tool is very memory demanding and it is not good idea to
make a new RefsHunter snapshot when you still have some previous snapshot
in the object memory.

Cheers,
-- Pavel

Reply via email to