Skip to content

Commit

Permalink
Rename and move GToolkit-Pharo9-Debugger to the debugger repository [f…
Browse files Browse the repository at this point in the history
  • Loading branch information
chisandrei committed May 15, 2024
1 parent 936da15 commit 55f8c44
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ BaselineOfGToolkitDebugger >> baseline: spec [
spec baseline: 'GToolkitInspector' with: [
spec repository: 'github://feenkcom/gtoolkit-inspector:main/src' ].
spec
package: 'GToolkit-Debugger-PharoOverrides';
package: 'GToolkit-Debugger' with: [
spec requires: #('GToolkitInspector' ). ];
spec requires: #('GToolkitInspector' 'GToolkit-Debugger-PharoOverrides'). ];
package: 'GToolkit-Debugger-MoldableExceptions' with: [
spec requires: #('GToolkit-Debugger' ). ];

Expand Down
29 changes: 29 additions & 0 deletions src/GToolkit-Debugger-PharoOverrides/BlBlocUIManager.extension.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
Extension { #name : #BlBlocUIManager }

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
BlBlocUIManager >> handleDebugRequest: aDebugRequest [
<debuggerCompleteToSender>

OupsDebuggerSystem new gtOpenDebuggerOnRequest: aDebugRequest
]

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
BlBlocUIManager >> handleDebugRequest: aDebugRequest fromDebuggerSystem: anOupsDebuggerSystem [
<debuggerCompleteToSender>

anOupsDebuggerSystem gtOpenDebuggerOnRequest: aDebugRequest
]

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
BlBlocUIManager >> handleWarningDebugRequest: aDebugRequest [
<debuggerCompleteToSender>

OupsDebuggerSystem new gtOpenDebuggerOnRequest: aDebugRequest
]

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
BlBlocUIManager >> handleWarningDebugRequest: aDebugRequest fromDebuggerSystem: anOupsDebuggerSystem [
<debuggerCompleteToSender>

anOupsDebuggerSystem gtOpenDebuggerOnRequest: aDebugRequest
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Extension { #name : #OupsDebuggerSystem }

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
OupsDebuggerSystem >> gtOpenDebuggerOnRequest: aDebugRequest [

"Prepare the opening of a debugger, and delegate the debugger selection and opening to a strategy"

<debuggerCompleteToSender>
| isForBlocUIProcess aBlocUniverseIfAny aDebuggerOpeningAction |

aDebugRequest debugSession logStackToFileIfNeeded.
self performPreDebugActionsIn: aDebugRequest.

(self gtSpawnNewUIProcessIfNecessary: aDebugRequest) in: [ :values |
isForBlocUIProcess := values first.
aBlocUniverseIfAny := values second ].
self ensureExceptionIn: aDebugRequest debugSession.

aDebuggerOpeningAction := [
GtMoldableDebugger
openOn: aDebugRequest debugSession
withFullView: nil
andNotification: nil ].

"Perform the opening of the debugger in defer action to suspend the UI."
isForBlocUIProcess
ifTrue: [ self defaultUIManager defer: aDebuggerOpeningAction universe: aBlocUniverseIfAny ]
ifFalse: [ aDebugRequest debugSession isAboutUIProcess
ifTrue: [ self defaultUIManager defer: aDebuggerOpeningAction ]
ifFalse: [ self defaultUIManager
universeDo: [ :aBlocUniverse | self defaultUIManager defer: aDebuggerOpeningAction universe: aBlocUniverse ]
ifAbsent: [ self defaultUIManager defer: aDebuggerOpeningAction ] ] ].


self suspendDebuggedProcess: aDebugRequest
]

{ #category : #'*GToolkit-Debugger-PharoOverrides' }
OupsDebuggerSystem >> gtSpawnNewUIProcessIfNecessary: aDebugRequest [

"If aDebugRequest is about debugging the UI process, we must create a new UI process to take its place. Because the debugged process will be suspended at some point, and suspending the UI process means freezing the UI of the image"
| isForBlocUIProcess aBlocUniverseIfAny |
isForBlocUIProcess := false.
aBlocUniverseIfAny := nil.

self defaultUIManager
universeForSession: aDebugRequest debugSession
ifPresent: [ :aUniverse |
isForBlocUIProcess := true.
aBlocUniverseIfAny := aUniverse.
aDebugRequest debugSession errorWasInUIProcess: true ]
ifAbsent: [].

aDebugRequest debugSession isAboutUIProcess ifTrue: [
DefaultExecutionEnvironment beActiveDuring: [
isForBlocUIProcess "Handle the case of the Bloc UI process"
ifTrue: [ self defaultUIManager spawnNewBlocProcess: aBlocUniverseIfAny ]
ifFalse: [ self defaultUIManager spawnNewProcess ] ] ].

^ { isForBlocUIProcess . aBlocUniverseIfAny }
]
1 change: 1 addition & 0 deletions src/GToolkit-Debugger-PharoOverrides/package.st
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Package { #name : #'GToolkit-Debugger-PharoOverrides' }

0 comments on commit 55f8c44

Please sign in to comment.