Chris Muller uploaded a new version of Tools to project Squeak 4.6:
http://source.squeak.org/squeak46/Tools-eem.628.mcz==================== Summary ====================
Name: Tools-eem.628
Author: eem
Time: 1 July 2015, 4:40:15.806 pm
UUID: 9f27ada3-52e9-4acb-83fe-2c117840e385
Ancestors: Tools-eem.627
Debugger: Extract the exception notification handler into its own method and use it for Through support also.
=============== Diff against Tools-eem.626 ===============
Item was changed:
----- Method: Debugger>>doStep (in category 'context stack menu') -----
doStep
"Send the selected message in the accessed method, and regain control
after the invoked method returns."
| currentContext newContext |
self okToChange ifFalse: [^ self].
self checkContextSelection.
currentContext := self selectedContext.
+ newContext := self handleLabelUpdatesIn: [interruptedProcess completeStep: currentContext]
+ whenExecuting: currentContext.
+ newContext == currentContext ifTrue:
+ [newContext := interruptedProcess stepToSendOrReturn].
- newContext := interruptedProcess completeStep: currentContext.
- newContext == currentContext ifTrue: [
- newContext := interruptedProcess stepToSendOrReturn].
self contextStackIndex > 1
ifTrue: [self resetContext: newContext]
+ ifFalse:
+ [newContext == currentContext
- ifFalse: [newContext == currentContext
ifTrue: [self changed: #contentsSelection.
self updateInspectors]
ifFalse: [self resetContext: newContext]].
!
Item was added:
+ ----- 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."
+
+ ^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]]!
Item was changed:
----- Method: Debugger>>stepIntoBlock (in category 'context stack menu') -----
stepIntoBlock
"Send messages until you return to the present method context.
Used to step into a block in the method."
+ self handleLabelUpdatesIn:
+ [interruptedProcess stepToHome: self selectedContext]
+ whenExecuting: self selectedContext.
+ self resetContext: interruptedProcess stepToSendOrReturn!
- interruptedProcess stepToHome: self selectedContext.
- self resetContext: interruptedProcess stepToSendOrReturn.!