On Tue, 25 Jun 2013, Stéphane Ducasse wrote:
Hi guys
when working on a new morphic kernel, we got stuck with a really difficult to
find
bug (we are still looking for it).
If new generation debugger lovers want to try. Here it is
- load the bloc version 6 from AlainPlantec/Bloc on smalltalkHub
- execute the snippet (alain will post the snippet because it is on his
machine)
BlProtoMorph new openInWorld
(there is another one)
- move the mouse and the system gets blocked.
Just type
kill -USR1 <pid>
and you'll be able to see where it got blocked.
Alternatively you can run a high priority process in the image which takes
snapshots of other processes (I'd choose the UI process and the
finalization process, since the former gets blocked, and the latter uses a
pretty much broken data structure in Pharo) every once in a while, and
writes them do disk/whatever.
Levente
After looking for it for a couple of hours here are some wishes list.
- would be good to be able to set a haltOnce to **all** the methods of
a **particular** object :)
- would be good to have the equivalent of GlobalVaHoldingOneObject
haltOnce ifTrue: [….]
- would be nice that we can say that the object once debugged does not
receive any other messages
(imagine an object in a fast rendering loops and that one message
causes problems).
Stef