[squeak-dev] The Trunk: ST80-mt.288.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 18 16:08:48 UTC 2023
Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.288.mcz
==================== Summary ====================
Name: ST80-mt.288
Author: mt
Time: 18 January 2023, 5:08:47.318866 pm
UUID: 044ef8f9-ad0a-f240-b695-4015f7ec6a92
Ancestors: ST80-mt.287
*** Debugger Refactoring - Step 3 of 2 ***
Remove and/or deprecate the old interface.
=============== Diff against ST80-mt.287 ===============
Item was removed:
- Debugger subclass: #MVCDebugger
- instanceVariableNames: 'interruptedController'
- classVariableNames: ''
- poolDictionaries: ''
- category: 'ST80-Support'!
Item was removed:
- ----- Method: MVCDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----
- openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full
- "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
-
- | debugger cm ac acp wasActive |
- cm := Project current world. "controller manager"
- ac := cm activeController.
- acp := cm activeControllerProcess. "the ui process"
- wasActive := cm inActiveControllerProcess.
-
- debugger := self new
- process: processToDebug
- "Keep track of the controller if it matches."
- controller: (acp == processToDebug ifTrue: [ac])
- context: context.
-
- full
- ifTrue: [debugger openFullNoSuspendLabel: title]
- ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].
-
- "Try drawing the debugger tool at least once to avoid freeze."
- Project current restoreDisplay.
-
- "If we are in a helper process, #openNoTerminate WILL NOT activate the debugger's controller. Example: user-interrupt request (cmd+dot)."
- (acp == processToDebug and: [wasActive not])
- ifTrue: [ [cm searchForActiveController] fork ].
-
- "Be sure to suspend the process we want to debug now."
- processToDebug suspend.
-
- "If we are NOT in a helper process, #openNoTerminate WILL NOT terminate the active controller's process."
- (acp ~~ processToDebug and: [wasActive])
- ifTrue: [ Processor terminateActive ].
-
- "Get here only if active process is not the process-to-debug. Use helper process if you want to access this return value."
- ^ debugger!
Item was removed:
- ----- Method: MVCDebugger>>context: (in category 'initialize') -----
- context: aContext
-
- self
- process: Processor activeProcess
- controller: (ScheduledControllers inActiveControllerProcess
- ifTrue: [ScheduledControllers activeController])
- context: aContext.!
Item was removed:
- ----- Method: MVCDebugger>>openFullFromNotifier: (in category 'initialize') -----
- openFullFromNotifier: notifierView
- "Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
-
- | fullView |
- super openFullFromNotifier: notifierView.
-
- fullView := ToolBuilder default build: self.
- fullView label: notifierView label. "Keep the label."
- fullView controller openNoTerminate.
-
- notifierView controller closeAndUnscheduleNoTerminate.
- Processor terminateActive.!
Item was removed:
- ----- Method: MVCDebugger>>openFullNoSuspendLabel: (in category 'initialize') -----
- openFullNoSuspendLabel: aString
- "Create, schedule and answer a full debugger with the given label. Do not terminate the current active process."
-
- | fullView |
- super openFullNoSuspendLabel: aString.
-
- fullView := ToolBuilder default build: self.
- fullView label: aString.
- fullView controller openNoTerminate.
-
- ^ fullView!
Item was removed:
- ----- Method: MVCDebugger>>openNotifierNoSuspendContents:label: (in category 'initialize') -----
- openNotifierNoSuspendContents: msgString label: label
-
- | builder spec view |
- EventSensor default flushEvents.
- super openNotifierNoSuspendContents: msgString label: label.
-
- builder := ToolBuilder default.
- spec := self buildNotifierWith: builder label: label message: msgString.
-
- view := builder build: spec.
- view controller openNoTerminate.
-
- ^ view!
Item was removed:
- ----- Method: MVCDebugger>>process:controller:context: (in category 'initialize') -----
- process: aProcess controller: aController context: aContext
-
- self process: aProcess context: aContext.
-
- interruptedController := aController.!
Item was removed:
- ----- Method: MVCDebugger>>resumeProcess: (in category 'private') -----
- resumeProcess: processToResume
- "Finally free the reference to the controller if any. We cannot do this in #windowIsClosing."
-
- | controllerToReschedule |
- controllerToReschedule := interruptedController.
- interruptedController := nil.
-
- ScheduledControllers
- activeController: controllerToReschedule
- andProcess: processToResume.!
Item was removed:
- ----- Method: MVCProject>>debuggerClass (in category 'scheduling & debugging') -----
- debuggerClass
-
- ^ Smalltalk classNamed: #MVCDebugger!
Item was removed:
- ----- Method: MVCProject>>syntaxError: (in category 'scheduling & debugging') -----
- syntaxError: aSyntaxErrorNotification
-
- super syntaxError: aSyntaxErrorNotification.
- Cursor normal show.
- Processor activeProcess suspend.!
More information about the Squeak-dev
mailing list
|