Christoph Thiede uploaded a new version of Tools to project The Trunk: http://source.squeak.org/trunk/Tools-ct.1249.mcz
==================== Summary ====================
Name: Tools-ct.1249 Author: ct Time: 3 March 2024, 8:10:31.669958 pm UUID: d9867cc9-cad5-0a41-8b64-86f1fbb54fe3 Ancestors: Tools-ct.1248
Complements Kernel-ct.1559 (merges SimulationSideEffectWarning.5.cs, step 2/2).
Revision: Also handle label updates in debugger when resuming from a method with a possible primitive.
=============== Diff against Tools-ct.1248 ===============
Item was changed: ----- Method: Debugger>>handleLabelUpdatesIn:whenExecuting: (in category 'context stack menu') ----- handleLabelUpdatesIn: aBlock whenExecuting: aContext "Send the selected message in the accessed method, and regain control after the invoked method returns." + + | originalProcess | + originalProcess := Processor activeProcess. ^aBlock on: Notification do: [:ex| (ex tag isArray and: [ex tag size = 2 and: [(ex tag first == aContext or: [ex tag first hasSender: aContext])]]) ifTrue: [self labelString: ex tag second description. ex resume] ifFalse: + [ex pass]] + + on: SimulationSideEffectWarning + do: [:ex | + ex isControlPrimitive ifTrue: [ex unsuppress]. + ex resume: + "Avoid infinite recursion in Process>>effectiveProcess when debugging this warning, because the warning while the simulator was evaluating on behalf of the interrupted process." + (originalProcess + evaluate: [ex defaultAction] + onBehalfOf: nil)]! - [ex pass]]!
Item was changed: ----- Method: Debugger>>tryRestartFrom: (in category 'context stack menu') ----- tryRestartFrom: context "Try to restart from the initial state of the context. Return whether an unwind error occurred."
+ | currentContext unwindError | + currentContext := self selectedContext. + currentContext := self + handleLabelUpdatesIn: [interruptedProcess popTo: context] + whenExecuting: currentContext. + unwindError := currentContext ~= context. - | actualContext unwindError | - actualContext := interruptedProcess popTo: context. - unwindError := actualContext ~= context. unwindError ifFalse: [ + currentContext := self + handleLabelUpdatesIn: [interruptedProcess restartTop; stepToSendOrReturn] + whenExecuting: currentContext]. + self resetContext: currentContext. - actualContext := interruptedProcess restartTop; stepToSendOrReturn]. - self resetContext: actualContext. ^ unwindError!
squeak-dev@lists.squeakfoundation.org