<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Hi all,</p>
<p><br>
</p>
<p>thanks for reporting. I think that we see two overlapping effects here:</p>
<p><br>
</p>
<p>First, #runUntilErrorOrReturnFrom: (which is called eventually by Debugger >> #stepOver) does not support Context >> #<span>aboutToReturn:through: correctly, still. I'd like to refer to this thread again: <a href="http://forum.world.st/BUG-REGRESSION-while-debugging-Generator-gt-gt-nextPut-td5108125.html#a5127567" class="OWAAutoLink" id="LPlnk420022" previewremoved="true">http://forum.world.st/BUG-REGRESSION-while-debugging-Generator-gt-gt-nextPut-td5108125.html#a5127567</a></span><br>
</p>
<p><br>
</p>
<p>But the fact that the guard contexts are not removed again should not lead to a cannot return situation. Instead, I would rather have expected that the UI process would be terminated. But somehow, the termination in BlockClosure >> #newProcess fails. I observed
 that primitive 88 in Process >> #suspend fails so the execution continues right from the bottom context of the process. I'm not sure why primitiveSuspend fails here. Might this be related to the changes in termination logic? Jaromir? :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" target="_blank" rel="noopener noreferrer" id="LPNoLP"><font size="2"><span id="LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 19. April 2021 09:54:44<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] stepping over non local return in a protected block</font>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Hmm... at least you get a debugger. In Squeak 5.3, you are not able to put a "self halt" into that event handler in test03EventHandler. ^__^
<div><br>
</div>
<div>Yet, I noticed that when stepping over that "^ self dispatchEvent:..." in #dispatchMouseDown:with:, a second debugger appears. That's a bug. The expected behavior would be that the same debugger shows the "halt." I think.<br>
<div><br>
</div>
<div><img id="670be242-bb99-4473-9c03-33ed2e27d845" width="709" height="214" src="cid:a5ced8c3-367c-42c8-ba0d-8b1cf7ba75b8"><!-- </img> --><br>
</div>
<div><br>
</div>
<div>Best,</div>
<div>Marcel</div>
</div>
<div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 17.04.2021 10:58:06 schrieb Jaromir Matas <m@jaromir.net>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">Hi Nicolas,<br>
<br>
<br>
Nicolas Cellier wrote<br>
> When debugging things like this:<br>
> <br>
> [^2] ensure: [Transcript cr; show: 'done'].<br>
> <br>
> if we step into the protected block [^2], then step over ^2, we<br>
> incorrectly get a BlockCannotReturn.<br>
<br>
Hmm, that's the bug that plagued #terminate and caused unwind errors... I<br>
didn't fully realize then; I simply avoided it by eliminating the simulation<br>
code from #terminate :) This behavior happens when the VM calls<br>
#aboutToReturn:through: and the Debugger executes #stepOver it (or over<br>
#return:through: or #resume:through:) - sorry if I'm stating the obvious;<br>
unfortunately I have negligible knowledge of the Debugger. I'm really<br>
looking forward to seeing a solution!<br>
Thanks, <br>
best,<br>
<br>
<br>
<br>
-----<br>
^[^ Jaromir<br>
--<br>
Sent from: http://forum.world.st/Squeak-Dev-f45488.html<br>
<br>
</div>
</blockquote>
</div>
</div>
</body>
</html>