[squeak-dev] The Trunk: Tools-rkrk.114.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] The Trunk: Tools-rkrk.114.mcz

commits-2
Andreas Raab uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-rkrk.114.mcz

==================== Summary ====================

Name: Tools-rkrk.114
Author: rkrk
Time: 24 August 2009, 6:08:27 am
UUID: 741e9c31-d282-49d2-8e27-555d19ca62ed
Ancestors: Tools-rkrk.112

The debugger doesn't show custom messages. This means that notifications like Monticello's warning that changes are going to be lost aren't displayed anymore.

This fixs adds an instance variable to Debugger which stores the message.

#preDebugNotifierContentsFrom: method is removed since it is apperently not used anymore.

=============== Diff against Tools-rkrk.112 ===============

Item was changed:
  ----- Method: Debugger>>buildNotifierWith:label:message: (in category 'toolbuilder') -----
  buildNotifierWith: builder label: label message: messageString
  | windowSpec listSpec textSpec panelSpec buttonSpec |
  windowSpec := builder pluggableWindowSpec new.
  windowSpec model: self.
  windowSpec extent: 450 @ 156. "nice and wide to show plenty of the error msg"
  windowSpec label: label.
  windowSpec children: OrderedCollection new.
 
  panelSpec := builder pluggablePanelSpec new.
  panelSpec children: OrderedCollection new.
  self preDebugButtonQuads do:[:spec|
  buttonSpec := builder pluggableButtonSpec new.
  buttonSpec model: self.
  buttonSpec label: spec first.
  buttonSpec action: spec second.
  buttonSpec help: spec fourth.
  panelSpec children add: buttonSpec.
  ].
  panelSpec layout: #horizontal. "buttons"
  panelSpec frame: (0@0 corner: 1@0.2).
  windowSpec children add: panelSpec.
 
  Preferences eToyFriendly | messageString notNil ifFalse:[
  listSpec := builder pluggableListSpec new.
  listSpec
  model: self;
  list: #contextStackList;
  getIndex: #contextStackIndex;
  setIndex: #debugAt:;
  frame: (0@0.2 corner: 1@1).
  windowSpec children add: listSpec.
  ] ifTrue:[
+ message := messageString.
  textSpec := builder pluggableTextSpec new.
  textSpec
  model: self;
  getText: #preDebugMessageString;
  setText: nil;
  selection: nil;
  menu: #debugProceedMenu:;
  frame: (0@0.2corner: 1@1).
  windowSpec children add: textSpec.
  ].
 
  ^windowSpec!

Item was changed:
  CodeHolder subclass: #Debugger
+ instanceVariableNames: 'interruptedProcess interruptedController contextStack contextStackTop contextStackIndex contextStackList receiverInspector contextVariablesInspector externalInterrupt proceedValue selectingPC debuggerMap savedCursor isolationHead failedProject errorWasInUIProcess labelString message'
- instanceVariableNames: 'interruptedProcess interruptedController contextStack contextStackTop contextStackIndex contextStackList receiverInspector contextVariablesInspector externalInterrupt proceedValue selectingPC debuggerMap savedCursor isolationHead failedProject errorWasInUIProcess labelString'
  classVariableNames: 'ContextStackKeystrokes ErrorRecursion'
  poolDictionaries: ''
  category: 'Tools-Debugger'!
 
  !Debugger commentStamp: '<historical>' prior: 0!
  I represent the machine state at the time of an interrupted process. I also represent a query path into the state of the process. The debugger is typically viewed through a window that views the stack of suspended contexts, the code for, and execution point in, the currently selected message, and inspectors on both the receiver of the currently selected message, and the variables in the current context.
 
  Special note on recursive errors:
  Some errors affect Squeak's ability to present a debugger.  This is normally an unrecoverable situation.  However, if such an error occurs in an isolation layer, Squeak will attempt to exit from the isolation layer and then present a debugger.  Here is the chain of events in such a recovery.
 
  * A recursive error is detected.
  * The current project is queried for an isolationHead
  * Changes in the isolationHead are revoked
  * The parent project of isolated project is returned to
  * The debugger is opened there and execution resumes.
 
  If the user closes that debugger, execution continues in the outer project and layer.  If, after repairing some damage, the user proceeds from the debugger, then the isolationHead is re-invoked, the failed project is re-entered, and execution resumes in that world. !

Item was changed:
  ----- Method: Debugger>>preDebugMessageString (in category 'toolbuilder') -----
  preDebugMessageString
+ ^ message ifNil: ['An error has occurred; you should probably just hit ''abandon''.  Sorry!!'].!
- ^'An error has occurred; you should probably just hit ''abandon''.  Sorry!!'!

Item was removed:
- ----- Method: Debugger>>preDebugNotifierContentsFrom: (in category 'initialize') -----
- preDebugNotifierContentsFrom: messageString
- ^ Preferences eToyFriendly
- ifFalse:
- [messageString]
- ifTrue:
- ['An error has occurred; you should probably just hit ''abandon''.  Sorry!!' translated] !