[squeak-dev] The Trunk: Tools-eem.756.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Apr 11 19:06:54 UTC 2017
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.756.mcz
==================== Summary ====================
Name: Tools-eem.756
Author: eem
Time: 11 April 2017, 12:06:44.157162 pm
UUID: e6634875-90c8-4ebf-9f07-5b3e1aadfc81
Ancestors: Tools-cmm.755
Make the debugger handle gracefully stepping through the termiation of a process.
=============== Diff against Tools-cmm.755 ===============
Item was changed:
----- Method: Debugger>>buildControlButtonsWith: (in category 'toolbuilder') -----
buildControlButtonsWith: builder
| panelSpec |
panelSpec := builder pluggablePanelSpec new.
panelSpec children: OrderedCollection new.
self customButtonSpecs do:[:spec|
| buttonSpec |
buttonSpec := builder pluggableActionButtonSpec new.
buttonSpec model: self.
buttonSpec label: spec first.
buttonSpec action: spec second.
spec second == #methodHierarchy ifTrue:[
buttonSpec color: #inheritanceButtonColor.
].
+ spec size > 2 ifTrue:
+ [buttonSpec help: spec third.
+ spec size > 3 ifTrue:
+ [buttonSpec enabled: spec fourth]].
- spec size > 2 ifTrue:[buttonSpec help: spec third].
panelSpec children add: buttonSpec.
].
panelSpec layout: #horizontal. "buttons"
^panelSpec!
Item was changed:
----- Method: Debugger>>customButtonSpecs (in category 'initialize') -----
customButtonSpecs
"Answer an array of elements of the form wording, selector, help-message, that characterize the custom button row of a debugger."
| list |
list := #(('Proceed' proceed 'close the debugger and proceed.')
('Restart' restart 'reset this context to its start.')
+ ('Into' send 'step Into message sends' interruptedProcessIsActive)
+ ('Over' doStep 'step Over message sends' interruptedProcessIsActive)
+ ('Through' stepIntoBlock 'step into a block' interruptedProcessIsActive)
- ('Into' send 'step Into message sends')
- ('Over' doStep 'step Over message sends')
- ('Through' stepIntoBlock 'step into a block')
('Full Stack' fullStack 'show full stack')
('Where' where 'select current pc range')
('Tally' tally 'time in milliseconds to execute')).
Preferences restartAlsoProceeds ifTrue:
[list := list collect: [:each |
each second == #restart
ifTrue: [each copy at: 3 put: 'proceed from the beginning of this context.'; yourself]
ifFalse: [each]]].
^ list!
Item was added:
+ ----- Method: Debugger>>interruptedProcessIsActive (in category 'user interface') -----
+ interruptedProcessIsActive
+ ^interruptedProcess isTerminated not!
Item was changed:
----- Method: Debugger>>resetContext:changeContents: (in category 'private') -----
resetContext: aContext changeContents: aBoolean
"Used when a new context becomes top-of-stack, for instance when the
method of the selected context is re-compiled, or the simulator steps or
returns to a new method. There is room for much optimization here, first
to save recomputing the whole stack list (and text), and secondly to avoid
recomposing all that text (by editing the paragraph instead of recreating it)."
| oldContext |
oldContext := self selectedContext.
+ self newStack: (aContext ifNil: [oldContext]) contextStack.
+ self changed: #contextStackList; changed: #interruptedProcessIsActive.
- self newStack: aContext contextStack.
- self changed: #contextStackList.
self contextStackIndex: 1 oldContextWas: oldContext.
aBoolean ifTrue: [self contentsChanged].
!
More information about the Squeak-dev
mailing list
|