<div dir="ltr">This helps, thanks. I am at least able to freeze things.<div><br></div><div>Going further ... executing this in a workspace:<div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">b := BoxedMorph new.<br>b addMorph: b.<br>b openInHand.</blockquote><div><br></div><div>the pointer disappears (infinite redraw), I press cmd-. and the debugger (User Interrupt) appears.</div></div><div><br></div><div>Is there any way, at that point, to restore VM state to that point prior to (faulty) code execution (as in, cancel last 2 messages, #addMorph: and #openInHand) ?</div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 13, 2023 at 4:20 PM Juan Vuletich <<a href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 3/13/2023 1:23 PM, Alexandre Rousseau via Cuis-dev wrote:<br>
> I accidentally introduced a bug in my class instance initialization <br>
> code (adding a submorph to itself). When instantiating my class, the <br>
> debugger appeared but seemed impossible to interact with while the <br>
> task bar rapidly filled up with more such debugger representations.<br>
><br>
> Unable to deal with this, I killed my cuis environment, losing 30 <br>
> minutes of work.<br>
><br>
> What do you do when faced with runaway exceptions? Is there some <br>
> keyboard action once can perform to stop the execution of it?<br>
<br>
It depends on where the exception is raised. If it is in #drawOn:, we <br>
already have a recovery mechanism. In some other cases, cmd-. (the <br>
interrupt key) let's you recover control. But the whole system is <br>
implemented in Smalltalk. There will always be ways to break code in a <br>
way that you can't get to a working UI again. As rabbit already said, <br>
that's why there are several files where your code is logged, so you can <br>
recover it.<br>
<br>
HTH,<br>
<br>
-- <br>
Juan Vuletich<br>
<a href="http://cuis.st" rel="noreferrer" target="_blank">cuis.st</a><br>
<a href="http://github.com/jvuletich" rel="noreferrer" target="_blank">github.com/jvuletich</a><br>
<a href="http://researchgate.net/profile/Juan-Vuletich" rel="noreferrer" target="_blank">researchgate.net/profile/Juan-Vuletich</a><br>
<a href="http://independent.academia.edu/JuanVuletich" rel="noreferrer" target="_blank">independent.academia.edu/JuanVuletich</a><br>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" rel="noreferrer" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a><br>
<a href="http://linkedin.com/in/juan-vuletich-75611b3" rel="noreferrer" target="_blank">linkedin.com/in/juan-vuletich-75611b3</a><br>
<a href="http://twitter.com/JuanVuletich" rel="noreferrer" target="_blank">twitter.com/JuanVuletich</a><br>
<br>
</blockquote></div>