Eliot Miranda uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-eem.746.mcz==================== Summary ====================
Name: Morphic-eem.746
Author: eem
Time: 6 October 2014, 1:09:34.182 pm
UUID: c9ae704e-6a58-40b8-a998-72392d0cff6e
Ancestors: Morphic-ul.745
Fix debugging of optimized expressions.
=============== Diff against Morphic-ul.745 ===============
Item was changed:
----- Method: TextEditor>>debug:receiver:in: (in category 'do-its') -----
debug: aCompiledMethod receiver: anObject in: evalContext
+ | guineaPig debugger debuggerWindow context |
- | guineaPig debugger context |
guineaPig := [
aCompiledMethod
valueWithReceiver: anObject
arguments: (evalContext ifNil: [ #() ] ifNotNil: [ { evalContext } ]) ] newProcess.
context := guineaPig suspendedContext.
debugger := Debugger new
process: guineaPig
controller: nil
context: context.
+ debuggerWindow := debugger openFullNoSuspendLabel: 'Debug it'.
+ "Now step into the expression. But if it is quick (is implemented as a primtiive, e.g. `0')
+ it will return immediately back to the block that is sent newProcess above. Guard
+ against that with the check for home being thisContext."
+ [debugger interruptedContext method == aCompiledMethod]
+ whileFalse:
+ [debugger interruptedContext home == thisContext ifTrue:
+ [debuggerWindow delete.
+ UIManager default inform: 'Nothing to debug; expression is optimized'.
+ ^self].
+ debugger send]!
- debugger openFullNoSuspendLabel: 'Debug it'.
- [ debugger interruptedContext method == aCompiledMethod ]
- whileFalse: [ debugger send ]!