On Tue, Apr 19, 2016 at 10:08 PM, Pavel Krivanek <pavel.kriva...@gmail.com> wrote: > > > 2016-04-19 15:53 GMT+02:00 Mariano Martinez Peck <marianop...@gmail.com>: >> >> Hi Pavel, >> >> This would have helped us to track that evil object years ago (remember >> the name???) hahaha. > > > Dzindzik :-) > >> >> Anyway, do you think it's worth an integration of this to >> http://smalltalkhub.com/#!/~BenComan/PointerDetective ??
The last few commits of this are not stable. Unfortunately I got distracted in the middle of some re-factoring when I stumbled due to debugging circular references which locked the image [1] . I should look at reviving this for Pharo 5, maybe on Bloc... [1] https://pharo.fogbugz.com/default.asp?14827 - printString locks Image on circular references cheers -ben > > It should be pretty easy. it deserves an attempt. > > -- Pavel > >> >> >> Best, >> >> On Tue, Apr 19, 2016 at 10:44 AM, Pavel Krivanek >> <pavel.kriva...@gmail.com> wrote: >>> >>> 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 >> >> >> >> >> -- >> Mariano >> http://marianopeck.wordpress.com > >