Eliot Miranda uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-eem.747.mcz
==================== Summary ====================
Name: Morphic-eem.747 Author: eem Time: 6 October 2014, 3:39:08.651 pm UUID: 6d5fda0b-2826-43c4-af1e-9f5c0cf7258e Ancestors: Morphic-eem.746
Fix the broken fix in Morphic-eem.746 for debugging optimized methods.
=============== Diff against Morphic-eem.746 ===============
Item was changed: ----- Method: TextEditor>>debug:receiver:in: (in category 'do-its') ----- debug: aCompiledMethod receiver: anObject in: evalContext
| guineaPig debugger debuggerWindow context | + guineaPig := + [aCompiledMethod - guineaPig := [ - aCompiledMethod valueWithReceiver: anObject + arguments: (evalContext ifNil: [ #() ] ifNotNil: [ { evalContext } ]). + guineaPig := nil "spot the return from aCompiledMethod"] newProcess. - 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: + [(guineaPig isNil + and: [debugger interruptedContext home == thisContext]) ifTrue: - [debugger interruptedContext home == thisContext ifTrue: [debuggerWindow delete. UIManager default inform: 'Nothing to debug; expression is optimized'. ^self]. debugger send]!
packages@lists.squeakfoundation.org