<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hi Hilaire,<br>
    <br>
    I base Cuis we used to have the same bug. See the history of
    #debugIt. If the method #isQuick, we can't open a debugger on it.<br>
    <br>
    Hope this helps.<br>
    <br>
    Cheers,<br>
    <br>
    On 2/21/2023 5:41 PM, Hilaire Fernandes via Cuis-dev wrote:
    <blockquote cite="mid:96b7973b-4744-a440-871c-65b1272fa60e@free.fr"
      type="cite">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <p><font size="4">Hi, <br>
        </font></p>
      <p>I tested latest DrGeo with my students last Friday. There are
        very good bug discoverers! My plate is full.<br>
      </p>
      <p>It is in the context of programming Smalltalk sketch. So we use
        the SmalltalkSketchEditor of DrGeo with its minimalist debugger.</p>
      <p>One student found that when hitting the "Step by Step" button
        of the editor when there is an empty code to compile, leads to
        an infinite loop (hopefully breakable with alt-[.])<br>
      </p>
      <p>The problem also occurs with simple code as "1". <br>
      </p>
      <p>I don't understand the arcane of the debugger and related
        compiler stuff, so help will be welcome to found out. I enclosed
        the debug log.<br>
      </p>
      <p>The involved methods are the my init of the debugger session:</p>
      <p><b>DrGSmalltalkEditor>>debugSketch</b><br>
            "model ifEmpty: [^ self]."<br>
            self stopSketch.<br>
            self isDocVisible ifTrue: [self toggleHelp].<br>
            codeView scroller acceptContents.<br>
            codeView editor <br>
                afterCompiling: model <br>
                do:  [ :compiler :method :receiver :context | method
        ifNotNil: [<br>
                    debugger _ Debugger <br>
                        openMinimalDebugging: [<br>
                            method<br>
                                valueWithReceiver: receiver <br>
                                arguments: (context ifNil: [ #() ]
        ifNotNil: [ { context } ])]<br>
                        to: method.<br>
                    debugger layoutMorph borderWidth: 1.<br>
                    codeAndViewPanel replaceSubmorph: codeView by:
        debugger layoutMorph.            <br>
                    debugger model when: #closeViews send: #stopDebbuger
        to: self.<br>
                    debugger     contextVariableInspector
        selectionIndex: 3.]<br>
                    ]<br>
                ifFail: [].</p>
      <p>and <br>
      </p>
      <p><b>Debugger class>>openMinimalDebugging: aBlock to:
          aCompiledMethod </b><br>
            "Create a new process to debug aBlock, and step into it."<br>
        <br>
            | processToDebug debugger window |<br>
            debugger _ self new.<br>
            processToDebug _ aBlock newProcess name: 'debugIt'.<br>
            debugger process: processToDebug context: processToDebug
        suspendedContext.<br>
            window _ debugger openMinimalMorphic.<br>
            [debugger interruptedContext method == aCompiledMethod]<br>
                whileFalse: [debugger send].<br>
            ^ window <br>
      </p>
      <p><br>
      </p>
      <p>Then image is stuck in the method<b> </b><b>doPrimitive:
          primitiveIndex method: meth receiver: receiver args: arguments</b></p>
      <p>I also observed in this method several messages<b> </b>are
        unimplemented methods (colored in red in the Browser)<br>
      </p>
      <p>I can't tell if it is a problem of Cuis or DrGeo...</p>
      <p>If one want to experiment the bug, just download latest DrGeo
        at <a moz-do-not-send="true" class="moz-txt-link-freetext"
          href="http://dev.drgeo.eu">http://dev.drgeo.eu</a> and open
        its Smalltalk Sketch editor from the world menu then hit the
        "step by step" iconic button.</p>
      <p>Thanks</p>
      <p>Hilaire<br>
      </p>
      <pre class="moz-signature" cols="72">-- 
GNU Dr. Geo
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
  </body>
</html>