Eliot Miranda uploaded a new version of ST80Tools to project The Trunk: http://source.squeak.org/trunk/ST80Tools-eem.3.mcz
==================== Summary ====================
Name: ST80Tools-eem.3 Author: eem Time: 6 October 2014, 4:45:25.26 pm UUID: 025a1ce4-d05a-4afb-b5c8-fc0df26ef4e0 Ancestors: ST80Tools-fbs.1
Fix debugging of optimized expressions. Depends also on Kernel-eem.878.
=============== Diff against ST80Tools-fbs.1 ===============
Item was changed: ----- Method: ParagraphEditor>>debug:receiver:in: (in category '*ST80Tools') ----- debug: aCompiledMethod receiver: anObject in: evalContext
+ | guineaPig debugger debuggerWindow context | + guineaPig := + [aCompiledMethod - | guineaPig debugger context | - 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: ((Smalltalk isMorphic not and: [ScheduledControllers inActiveControllerProcess]) ifTrue: + [ScheduledControllers activeController]) - controller: ((Smalltalk isMorphic not and: [ScheduledControllers inActiveControllerProcess]) - ifTrue: [ScheduledControllers activeController] - ifFalse: [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 openFullNoSuspendLabel: 'Debug it'. [debugger interruptedContext method == aCompiledMethod] + whileFalse: + [(guineaPig isNil + and: [debugger interruptedContext home == thisContext]) ifTrue: + [debuggerWindow controller closeAndUnschedule. + UIManager default inform: 'Nothing to debug; expression is optimized'. + ^self]. + debugger send]! - whileFalse: [debugger send]!
packages@lists.squeakfoundation.org