<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
Hi Christoph,<div><br></div><div>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:</div><div><br></div><div>1. Generator step-over</div><div>Generator on: [:g | g yield: #foo].</div><div><br></div><div>2. Error in a debugger's build-with method.</div><div><br></div><div>Best,</div><div>Marcel</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 16.12.2019 11:53:21 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>http://source.squeak.org/inbox/Morphic-ct.1610.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-ct.1610<br>Author: ct<br>Time: 16 December 2019, 11:52:56.435097 am<br>UUID: 37c022c9-73a9-0648-ba0a-2b1fe98f86ad<br>Ancestors: Morphic-mt.1608<br><br>Prevent infinite debugger chains in case of a failure while building the predebugger window. Complements System-ct.1130.<br><br>To reproduce, insert an error like "1/0" into Debugger >> #buildNotifierWith:label:message:.<br><br>=============== Diff against Morphic-mt.1608 ===============<br><br>Item was changed:<br> ----- Method: MorphicDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----<br> openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full <br> <br> | debugger uiBlock |<br> debugger := self new<br> process: processToDebug context: context;<br> errorWasInUIProcess: (Project current spawnNewProcessIfThisIsUI: processToDebug).<br> <br> uiBlock := [<br> full<br> ifTrue: [debugger openFullNoSuspendLabel: title]<br> ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].<br> <br> "Try drawing the debugger tool at least once to avoid freeze."<br> debugger topView ifNotNil: [:window | window world displayWorld. "Not safely!!"].<br> ].<br> <br> "Schedule debugging in a deferred UI message if necessary. Note that only the ui process should execute ui code."<br> (Project current uiProcess isActiveProcess not or: [processToDebug isActiveProcess])<br>+ ifTrue: [Project current addDeferredUIMessage: [<br>+ Processor activeProcess setErrorRecursionFlagDuring: uiBlock]]<br>- ifTrue: [Project current addDeferredUIMessage: uiBlock]<br> ifFalse: uiBlock.<br> <br> processToDebug suspend.<br> <br> "Get here only if active process is not the process-to-debug. So in tests, use a helper process if you want to access this return value."<br> ^ debugger!<br><br><br></div></blockquote></div>