[squeak-dev] Endless debuggers (was: The Inbox: Morphic-ct.1610.mcz)

Thiede, Christoph Christoph.Thiede at student.hpi.uni-potsdam.de
Mon Dec 23 19:05:12 UTC 2019


Hi Jakob,


yes, these observations are very well known to me ... :)

> Is there a way to stop this if it happens? I have "Open tools attached to hand" activated so I cannot click on Do > Utilities closeAllDebuggers...

FYI, you can also press Ctrl + 5 to open the "Do" menu and then type "De" + Enter to perform "Utilities closeAllDebuggers".
Or modify Marcel's changeset from May (cmd-dot-dialog.cs) and add the command there :)

However, we should sharpen our error detection while opening a debugger. This would make it so much easier to debug such problems ...

Best,
Christoph

________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Jakob Reschke <forums.jakob at resfarm.de>
Gesendet: Montag, 23. Dezember 2019 17:55:38
An: The general-purpose Squeak developers list
Betreff: [squeak-dev] Endless debuggers (was: The Inbox: Morphic-ct.1610.mcz)

Am Mo., 16. Dez. 2019 um 14:32 Uhr schrieb Marcel Taeumel <marcel.taeumel at hpi.de<mailto:marcel.taeumel at hpi.de>>:
Hi Christoph,

hmm... I would rather not spread that recursion flag to outside Debugger class >> #openOn:... I will look into it. Thanks for those two bug reports that cause endless debuggers:

1. Generator step-over
Generator on: [:g | g yield: #foo].

2. Error in a debugger's build-with method.

Best,
Marcel

FYI today there are still some cases that spawn endless debuggers.

It had it twice today, but unfortunately can't give you exacts steps for reproduction.
1. Debug a test case, step over some long operation, interrupt with Cmd+. to because of impatience, step so far in the second debugger that control could theoretically return to the first one. Then there was some Context on the top of the stack that did not seem to belong there, with a return handler... Well I had a manual ping-pong situation between the two debuggers. After pressing the wrong button it resulted in an endless stream of new debuggers about not being able to return.
2. Press Into at the wrong place during a return handler (ensure:). Endless debuggers about aboutToReturn:through: (I saw that somewhere). The stack trace shows back-and-forth between Message>>sentTo: and UndefinedObject doesNotUnderStand: #findContextSuchThat: -- see attachment.

Maybe I should finally start to remember taking screenshots. Both cases seemed to be related to stack unwinding or ensure: actions though.

Is there a way to stop this if it happens? I have "Open tools attached to hand" activated so I cannot click on Do > Utilities closeAllDebuggers...

Merry Christmas everyone.
Kind regards,
Jakob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20191223/a0532db0/attachment.html>


More information about the Squeak-dev mailing list