<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font size="+1">Hi Juan, <br>
</font></p>
<p><font size="+1">I found that debugging faulty morph is hard in
some situation, at least in the context of DrGeo which, I
acknowledge, may not be representative.</font></p>
<p><font size="+1">Any way, when I have this DrGeo drawable (just a
morph) to which I add other morph (view of geometric model),
whenever this morph is causing an error (for example sending a
message to a nil object), Cuis enters an unstoppable infinite
loop (Alt+ [.] does not work) and log is printed on the command
line terminal (log attached too). The debugger never shows up:</font></p>
<pre><code><font size="+1">Error: Error: instVarAt:put: failed</font></code></pre>
<pre><code><font size="+1">See /home/hilaire/Travaux/Developpement/Cuis/Cuis-Smalltalk-Dev/CuisDebug-2021-04-29_14.22.45.log</font></code></pre>
<pre><code><font size="+1">29 April 2021 2:22:45.925242 pm</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>error:</font></code></pre>
<pre><code><font size="+1">[] in WorldMorph>>displayWorldSafely</font></code></pre>
<pre><code><font size="+1">BlockClosure>>valueWithPossibleArgument:and:</font></code></pre>
<pre><code><font size="+1">[] in BlockClosure>>ifError:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>valueWithPossibleArgument:</font></code></pre>
<pre><code><font size="+1">[] in [] in Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>on:do:</font></code></pre>
<pre><code><font size="+1">[] in Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>ifCurtailed:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">MethodContext(ContextPart)>>evaluateSignal:</font></code></pre>
<pre><code><font size="+1">MethodContext(ContextPart)>>handleSignal:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signalIn:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signal</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signal:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>error:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>primitiveFailed:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>primitiveFailed</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>instVarAt:put:</font></code></pre>
<pre><code><font size="+1">Error: Error: instVarAt:put: failed</font></code></pre>
<pre><code><font size="+1">See /home/hilaire/Travaux/Developpement/Cuis/Cuis-Smalltalk-Dev/CuisDebug-2021-04-29_14.22.45.log</font></code></pre>
<pre><code><font size="+1">29 April 2021 2:22:45.926454 pm</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>error:</font></code></pre>
<pre><code><font size="+1">[] in WorldMorph>>displayWorldSafely</font></code></pre>
<pre><code><font size="+1">BlockClosure>>valueWithPossibleArgument:and:</font></code></pre>
<pre><code><font size="+1">[] in BlockClosure>>ifError:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>valueWithPossibleArgument:</font></code></pre>
<pre><code><font size="+1">[] in [] in Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>on:do:</font></code></pre>
<pre><code><font size="+1">[] in Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">BlockClosure>>ifCurtailed:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>evaluateHandlerBlock:</font></code></pre>
<pre><code><font size="+1">MethodContext(ContextPart)>>evaluateSignal:</font></code></pre>
<pre><code><font size="+1">MethodContext(ContextPart)>>handleSignal:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signalIn:</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signal</font></code></pre>
<pre><code><font size="+1">Error(Exception)>>signal:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>error:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>primitiveFailed:</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>primitiveFailed</font></code></pre>
<pre><code><font size="+1">UndefinedObject(Object)>>instVarAt:put:</font></code></pre>
<p><font size="+1"><br>
</font></p>
<p><font size="+1"></font><br>
</p>
<pre class="moz-signature" cols="72">--
GNU Dr. Geo
<a class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
</body>
</html>