DebugView.st
author Claus Gittinger <cg@exept.de>
Wed, 05 Jun 2019 14:16:59 +0200
changeset 18805 f6df57c6dbfb
parent 18791 d4648fa1cc9c
child 18861 4b9cfb623550
permissions -rw-r--r--
#BUGFIX by cg class: AbstractFileBrowser changed: #currentFileNameHolder endless loop if file not present.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
     1
"{ Encoding: utf8 }"
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
     2
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     3
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 2
diff changeset
     4
 COPYRIGHT (c) 1989 by Claus Gittinger
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
     5
              All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
     9
 inclusion of the above copyright notice.  This software may not
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    13
"
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
    14
"{ Package: 'stx:libtool' }"
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
    15
15084
838deef0918f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15027
diff changeset
    16
"{ NameSpace: Smalltalk }"
838deef0918f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15027
diff changeset
    17
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    18
StandardSystemView subclass:#DebugView
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    19
	instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    20
		receiverInspector contextInspector contextArray selectedContext
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    21
		catchBlock grabber mayProceed traceView tracing bigStep
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    22
		skipLineNr abortButton terminateButton continueButton stepButton
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    23
		nextButton nextOverButton nextOutButton sendButton returnButton
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    24
		restartButton exclusive inspecting nChainShown inspectedProcess
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    25
		updateProcess updateButton defineButton monitorToggle stepping
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    26
		steppedContextLineno actualContext inWrap stackInspector
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    27
		steppedContext wrapperContext firstContext stepHow cachable
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    28
		currentMethod ignoreBreakpoints stepUntilEntering
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    29
		lastStepUntilEntering lastSelectionInReceiverInspector
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    30
		lastSelectionInContextInspector canShowMore reportButton
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    31
		setOfHiddenCallingSelectors isStoppedAtHaltOrBreakPoint
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    32
		exceptionInfoLabel methodCodeToggle
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    33
		methodCodeToggleSelectionHolder
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    34
		isStoppedAtBreakPointWithParameter breakPointParameter
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    35
		hideSupportCode contextInfoLabel resendButton
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    36
		gotoDialogOpenerButton isStoppedInModalDialog selectorToDefine
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    37
		classToDefineIn gotoApplicationActionMethodButton
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    38
		isStoppedInApplicationAction isStoppedAtStatementBreakpoint
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
    39
		verboseBacktraceHolder foundRaisingMethod gotoRaisingMethodButton
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    40
		stepInButton infoLabelHolder isStoppedAtError'
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    41
	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    42
		DebuggingDebugger DebuggingDebugger2 DebuggingContextWalk
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    43
		DefaultDebuggerBackgroundColor InitialNChainShown IgnoredHalts
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    44
		ShowThreadID LastIgnoreHaltNTimes LastIgnoreHaltDuration
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    45
		LastExtent LastOrigin RememberedCallChain DebuggingDebugger3
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    46
		NumberOfDebuggers DebuggerOnMainDisplayOnly IgnoredErrors'
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    47
	poolDictionaries:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    48
	category:'Interface-Debugger'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    49
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    50
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    51
Object subclass:#IgnoredHaltOrBreakpoint
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    52
	instanceVariableNames:'ignoreEndTime ignoreCount ignoreUntilShiftKeyPressed
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    53
		ignoredReceiverClasses ignoredProcesses
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    54
		ignoredSendingClassAndSelectors'
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    55
	classVariableNames:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    56
	poolDictionaries:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    57
	privateIn:DebugView
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    58
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    59
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    60
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredHalt
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    61
	instanceVariableNames:'weakMethodHolder lineNumber'
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    62
	classVariableNames:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    63
	poolDictionaries:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    64
	privateIn:DebugView
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    65
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    66
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    67
DebugView::IgnoredHalt subclass:#IgnoredError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    68
	instanceVariableNames:'action'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    69
	classVariableNames:''
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    70
	poolDictionaries:''
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    71
	privateIn:DebugView
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    72
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
    73
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    74
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredBreakpoint
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    75
	instanceVariableNames:'parameter'
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    76
	classVariableNames:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    77
	poolDictionaries:''
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
    78
	privateIn:DebugView
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    79
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    80
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    81
!DebugView class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    82
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    83
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    84
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    85
 COPYRIGHT (c) 1989 by Claus Gittinger
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
    86
              All Rights Reserved
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    87
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    88
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    89
 only in accordance with the terms of that license and with the
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
    90
 inclusion of the above copyright notice.  This software may not
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    91
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    92
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    93
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    94
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    95
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    96
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    97
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    98
"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    99
    This class implements a graphical debugger interface.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   100
    The debugger usually sits on top of the faulting process,
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   101
    taking over its event processing.
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   102
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   103
    (this is different from other Smalltalk debuggers, which control
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   104
     the debuggee as a separate process. Consider this an historic
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
   105
     leftover - the debugger was one of the first applications written for ST/X.
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
   106
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   107
     The whole setup might be changed, once the required process primitives
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   108
     are available, which allow control of another processes execution
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   109
     (i.e. single-step, restart & return). The setup will be changed then,
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
   110
     to have the debugger control the debuggee (i.e. two processes).
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   111
     However, as it works as it is, and is reliable enough,
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
   112
     why should we change it without a particular need...).
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   113
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   114
    Only the 'stopped' debugged process is affected;
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   115
    other processes continue to respond to events.
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   116
    The one exception to this is when an error occurs within the dispatcher process
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
   117
    or in one of the eventhandler processes. In this case, the debugger
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   118
    will sit on an exclusive display connection.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   119
35
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
   120
    See additional information in 'doc/misc/debugger.doc'.
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   121
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
   122
    Notice & Warning (attention when changing things like menus, window spec etc. here):
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   123
        the DebugView class caches the last used debugger in a class variable,
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   124
        and hides/shows this window without recreating one from scratch. This is done to make
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   125
        the debugger come up faster when single stepping, or hopping from breakpoint to breakpoint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   126
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   127
        It may happen, that a malfunctioning debugger (for example, a halfway created/destroyed one)
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
   128
        is kept there. You will notice this if a debugger comes up without showing any contents.
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
   129
        In this case, close (or destroy) the broken debugView, and execute:
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   130
            Debugger newDebugger
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   131
        which removes the cached debugger and forces creation of a new one the next time.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   132
        This is a temporary workaround - the debugger should be fixed to avoid this situation.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   133
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   134
        You must also flush the cached debugger, if you change the debugger's
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   135
        initialization code (buttons, menu, etc.) or the debugger's class layout,
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
   136
        and you want the new code to become effective 
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
   137
        (otherwise, the already instantiated, cached debugger will be reused).
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   138
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   139
    [author:]
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   140
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   141
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   142
    [see also:]
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   143
        Exception Signal
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   144
        Process
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   145
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   146
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   147
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   148
!DebugView class methodsFor:'initialization'!
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   149
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   150
initialize
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
   151
    DebuggingDebugger := DebuggingDebugger2 := MoreDebuggingDetail := false.
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
   152
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
   153
    InitialNChainShown := 50.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   154
    "/ DefaultDebuggerBackgroundColor := nil.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   155
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   156
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   157
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   158
    "Created: 20.3.1997 / 16:53:37 / cg"
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   159
    "Modified: 20.3.1997 / 16:54:32 / cg"
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   160
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   161
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   162
reinitialize
7822
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   163
    "reinitialize after an image-restart"
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   164
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   165
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   166
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   167
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   168
!DebugView class methodsFor:'cleanup'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   169
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   170
lowSpaceCleanup
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   171
    "in low memory situations, give up cached debuggers"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   172
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   173
    |tmp|
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   174
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   175
    CachedDebugger notNil ifTrue:[
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   176
        tmp := CachedDebugger.
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   177
        CachedDebugger := nil.
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   178
        tmp destroy.
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   179
    ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   180
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   181
    OpenDebuggers := nil.
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   182
    RememberedCallChain := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   183
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   184
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   185
     DebugView lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   186
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   187
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   188
    "Modified: / 08-03-2012 / 01:30:21 / cg"
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   189
    "Modified: / 16-10-2017 / 13:52:55 / stefan"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   190
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   191
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   192
newDebugger
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
   193
    "force creation of a new debugger (give up cached debuggers).
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
   194
     Call this, if you changed the debugger heavily, and you want to avoid
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
   195
     that an old, cached debugger gets reused when the next error comes around."
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   196
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   197
    |tmp|
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   198
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   199
    CachedDebugger notNil ifTrue:[
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   200
        tmp := CachedDebugger.
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   201
        CachedDebugger := nil.
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   202
        Error catch:[
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   203
            tmp destroy.
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   204
        ].
16750
1cb2908253d2 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 16730
diff changeset
   205
    ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   206
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   207
    OpenDebuggers := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   208
16262
1b719dfc2813 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16253
diff changeset
   209
    "/ only assign to the global debugger, if it has not been redefined
1b719dfc2813 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16253
diff changeset
   210
    "/ to another class.
18572
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
   211
    (Debugger isBehavior 
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
   212
      and:[(Debugger name = #DebugView)
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
   213
      and:[self name = #DebugView]]) ifTrue:[
16262
1b719dfc2813 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16253
diff changeset
   214
        Smalltalk at:#Debugger put:self
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   215
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   216
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   217
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   218
     DebugView newDebugger
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
   219
     DebugView withAllSubclassesDo:#newDebugger
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   220
    "
17714
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   221
5b442e3a9632 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17664
diff changeset
   222
    "Modified: / 17-10-2017 / 12:55:09 / stefan"
18572
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
   223
    "Modified: / 30-01-2019 / 02:30:40 / Claus Gittinger"
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
   224
    "Modified (comment): / 01-02-2019 / 15:59:33 / Claus Gittinger"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   225
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   226
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   227
!DebugView class methodsFor:'defaults'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   228
14695
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   229
debuggerOnMainDisplayOnly
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   230
    ^ DebuggerOnMainDisplayOnly ? true
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   231
!
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   232
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   233
defaultIcon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   234
    "return the browsers default window icon"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   235
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   236
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   237
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   238
    ^ ToolbarIconLibrary debug22x22Icon
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   239
    "/ ^ ToolbarIconLibrary debugIt20x20Icon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   240
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   241
    "Modified: / 11-02-2007 / 11:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   242
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   243
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   244
defaultIconForAboutBox
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   245
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   246
17522
8e23db54c27a #REFACTORING by mawalch
mawalch
parents: 17473
diff changeset
   247
    ^ ToolbarIconLibrary debug22x22IconForBlackBackground
8e23db54c27a #REFACTORING by mawalch
mawalch
parents: 17473
diff changeset
   248
8e23db54c27a #REFACTORING by mawalch
mawalch
parents: 17473
diff changeset
   249
    "Modified: / 30-05-2017 / 19:28:40 / mawalch"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   250
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   251
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   252
defaultVerboseBacktrace
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   253
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   254
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   255
    ^ UserPreferences current verboseBacktraceInDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   256
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   257
    "Created: 11.1.1997 / 12:14:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   258
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   259
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   260
defaultVerboseBacktrace:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   261
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   262
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   263
    UserPreferences current verboseBacktraceInDebugger:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   264
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   265
13111
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   266
maxNumberOfDebuggers
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   267
    "to prevent debuggers from flooding the screen,
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   268
     in case of an error in an ever-forked background process
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   269
     (such as tooltip process)"
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   270
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   271
    ^ 20
13111
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   272
!
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   273
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   274
updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   275
    "extract values from the styleSheet and cache them in class variables"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   276
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   277
    <resource: #style (#'debugView.viewBackgroundColor')>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   278
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   279
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   280
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   281
    "Modified: / 17.11.2001 / 17:31:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   282
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   284
!DebugView class methodsFor:'ignoring halts'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   285
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   286
haltIgnoreInformationFor:haltingMethod atLineNr:lineNrInHaltingMethod
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   287
    "the information (if any) about the ignore-state of a halt"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   288
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   289
    IgnoredHalts isNil ifTrue:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   290
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   291
    IgnoredHalts do:[:ign |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   292
        (ign isForMethod:haltingMethod line:lineNrInHaltingMethod)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   293
        "/ (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   294
        ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   295
            ^ ign
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   296
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   297
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   298
    ^ nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   299
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   300
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   301
hasIgnoredHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   302
    self removeInactiveIgnores.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   303
    ^ IgnoredHalts notEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   304
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   305
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   306
ignoreBreakpointWithParameter:parameterOrNil
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   307
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   308
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   309
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   310
    "remember to ignore a breakpoint with a parameter (i.e. breakpoint:#cg) for some number of invocations
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   311
     or until some time has elapsed.
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   312
     With nil count and time arguments, such an ignored breakpoint is reactivated"
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   313
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   314
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   315
        ignoreHaltOrBreakpoint:#halt
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   316
        method:nil line:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   317
        parameter:parameterOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   318
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   319
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   320
        orIfCalledFromMethod:nil
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   321
!
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   322
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   323
ignoreErrorIn:methodOrNil line:lineNrOrNil 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   324
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   325
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   326
        orIfCalledFromMethod:ifCalledFromMethodOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   327
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   328
    "remember to ignore an error, either forEver, for some number of invocations
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   329
     or until some time has elapsed.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   330
     With nil count and time arguments, such an ignored error is reactivated"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   331
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   332
    |oldEntry ign|
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   333
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   334
    IgnoredErrors notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   335
        self removeInactiveIgnores.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   336
        oldEntry := IgnoredErrors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   337
                        detect:[:ign | ign isForMethod:methodOrNil line:lineNrOrNil]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   338
                        ifNone:nil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   339
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   340
        oldEntry notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   341
            (processOrNil notNil or:[receiverClassOrNil notNil]) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   342
                receiverClassOrNil notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   343
                    oldEntry ignoreForReceiverClass:receiverClassOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   344
                ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   345
                processOrNil notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   346
                    oldEntry ignoreForProcess:processOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   347
                ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   348
                ^ self.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   349
            ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   350
            IgnoredErrors remove:oldEntry ifAbsent:[].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   351
        ]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   352
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   353
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   354
    (countOrNil notNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   355
      or:[dTOrNil notNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   356
      or:[untilShiftKey == true
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   357
      or:[receiverClassOrNil notNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   358
      or:[processOrNil notNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   359
      or:[ifCalledFromMethodOrNil notNil]]]]]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   360
    ) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   361
        IgnoredErrors isNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   362
            IgnoredErrors := OrderedCollection new.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   363
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   364
        ign := IgnoredError new method:methodOrNil lineNumber:lineNrOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   365
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   366
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   367
            ign ignoreCount:countOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   368
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   369
        (dTOrNil notNil) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   370
            ign ignoreEndTime:(Timestamp now + dTOrNil).
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   371
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   372
        untilShiftKey == true ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   373
            ign ignoreUntilShiftKeyPressed:true.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   374
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   375
        receiverClassOrNil notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   376
            ign ignoreForReceiverClass:receiverClassOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   377
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   378
        processOrNil notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   379
            ign ignoreForProcess:processOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   380
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   381
        ifCalledFromMethodOrNil notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   382
            ign ignoreIfCalledFromMethod:ifCalledFromMethodOrNil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   383
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   384
        ign action:#abort.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   385
        IgnoredErrors add:ign.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   386
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   387
    Smalltalk changed:#ignoredErrors.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   388
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   389
    "Created: / 27-02-2019 / 22:22:47 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   390
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   391
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   392
ignoreHaltIn:haltingMethod at:lineNrOfHalt
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   393
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   394
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   395
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   396
    "remember to ignore a halt in some method for some number of invocations
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   397
     or until some time has elapsed.
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   398
     With nil count and time arguments, such an ignored halt is reactivated"
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   399
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   400
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   401
        ignoreHaltOrBreakpoint:#halt
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   402
        method:haltingMethod line:lineNrOfHalt
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   403
        parameter:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   404
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   405
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   406
        orIfCalledFromMethod:nil
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   407
!
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   408
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   409
ignoreHaltIn:haltingMethod at:lineNrOfHalt
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   410
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   411
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   412
        orIfCalledFromMethod:ifCalledForMethodOrNil
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   413
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   414
    "remember to ignore a halt in some method for some number of invocations
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   415
     or until some time has elapsed. 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   416
     With a count of -1, it is ignored forever (i.e. until reenabled via the
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   417
     settings).
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   418
     With nil count and time arguments, such an ignored halt is reactivated"
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   419
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   420
    self
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   421
        ignoreHaltOrBreakpoint:#halt
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   422
        method:haltingMethod line:lineNrOfHalt
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   423
        parameter:nil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   424
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   425
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   426
        orIfCalledFromMethod:ifCalledForMethodOrNil
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   427
!
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   428
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   429
ignoreHaltOrBreakpoint:type method:methodOrNil line:lineNrOfHaltOrNil parameter:parameterOrNil
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   430
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   431
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   432
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   433
    "remember to ignore a breakpoint with a parameter (i.e. breakpoint:#cg) for some number of invocations
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   434
     or until some time has elapsed.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   435
     With nil count and time arguments, such an ignored breakpoint is reactivated"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   436
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   437
    ^ self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   438
        ignoreHaltOrBreakpoint:type method:methodOrNil line:lineNrOfHaltOrNil parameter:parameterOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   439
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   440
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   441
        orIfCalledFromMethod:nil
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   442
!
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   443
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   444
ignoreHaltOrBreakpoint:type method:methodOrNil line:lineNrOfHaltOrNil parameter:parameterOrNil
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   445
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   446
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   447
        orIfCalledFromMethod:ifCalledFromMethodOrNil
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   448
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   449
    "remember to ignore a breakpoint with a parameter (i.e. breakpoint:#cg) for some number of invocations
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   450
     or until some time has elapsed.
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   451
     With nil count and time arguments, such an ignored breakpoint is reactivated"
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   452
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   453
    |oldEntry ign|
12947
46051d026ba5 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12941
diff changeset
   454
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   455
    IgnoredHalts notNil ifTrue:[
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   456
        self removeInactiveIgnores.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   457
        type == #halt ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   458
            oldEntry := IgnoredHalts
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   459
                            detect:[:ign | ign isForMethod:methodOrNil line:lineNrOfHaltOrNil]
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   460
                            ifNone:nil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   461
        ] ifFalse:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   462
            oldEntry := IgnoredHalts
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   463
                            detect:[:ign | ign isForBreakpointWithParameter:parameterOrNil]
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   464
                            ifNone:nil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   465
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   466
        oldEntry notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   467
            (processOrNil notNil or:[receiverClassOrNil notNil]) ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   468
                receiverClassOrNil notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   469
                    oldEntry ignoreForReceiverClass:receiverClassOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   470
                ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   471
                processOrNil notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   472
                    oldEntry ignoreForProcess:processOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   473
                ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   474
                ^ self.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   475
            ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   476
            IgnoredHalts remove:oldEntry ifAbsent:[].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   477
        ]
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   478
    ].
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   479
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   480
    (countOrNil notNil
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
   481
      or:[dTOrNil notNil
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   482
      or:[untilShiftKey == true
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   483
      or:[receiverClassOrNil notNil
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   484
      or:[processOrNil notNil
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
   485
      or:[ifCalledFromMethodOrNil notNil]]]]]
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   486
    ) ifTrue:[
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   487
        IgnoredHalts isNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   488
            IgnoredHalts := OrderedCollection new.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   489
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   490
        type == #halt ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   491
            ign := IgnoredHalt new method:methodOrNil lineNumber:lineNrOfHaltOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   492
        ] ifFalse:[
18181
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
   493
            ign := IgnoredBreakpoint new parameter:parameterOrNil.
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   494
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   495
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   496
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   497
            ign ignoreCount:countOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   498
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   499
        (dTOrNil notNil) ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   500
            ign ignoreEndTime:(Timestamp now + dTOrNil).
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   501
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   502
        untilShiftKey == true ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   503
            ign ignoreUntilShiftKeyPressed:true.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   504
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   505
        receiverClassOrNil notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   506
            ign ignoreForReceiverClass:receiverClassOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   507
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   508
        processOrNil notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   509
            ign ignoreForProcess:processOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   510
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   511
        ifCalledFromMethodOrNil notNil ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   512
            ign ignoreIfCalledFromMethod:ifCalledFromMethodOrNil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   513
        ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
   514
        IgnoredHalts add:ign.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   515
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   516
    Smalltalk changed:#ignoredHalts.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   517
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   518
    "Created: / 06-03-2012 / 12:37:58 / cg"
18181
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
   519
    "Modified: / 05-06-2018 / 18:34:17 / Claus Gittinger"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   520
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   521
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   522
isBreakpointToBeIgnoredForParameter:parameter context:aContext modifyEntryCount:modifyCount
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   523
    "/ should a breakpoint be ignored ?
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   524
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   525
    IgnoredHalts isNil ifTrue:[^ false].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   526
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   527
    "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   528
    IgnoredHalts do:[:ign |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   529
        (ign isForBreakpointWithParameter:parameter) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   530
            Transcript show:'Debugger [info]: break ignored for ', parameter.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   531
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   532
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   533
            ign isHaltIgnored ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   534
                Transcript showCR:'Debugger [info]: no longer ignore breakpoint for ', parameter.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   535
                IgnoredHalts remove:ign ifAbsent:[].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   536
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   537
            ^ true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   538
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   539
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   540
13162
e19746a3bf73 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13111
diff changeset
   541
    IgnoredHalts := (IgnoredHalts reject:[:ign | ign isActive not ]) asNilIfEmpty.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   542
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   543
    ^ false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   544
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   545
    "Created: / 06-03-2012 / 12:50:30 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   546
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   547
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   548
isErrorToBeIgnoredIn:errorMethod atLineNr:lineNrInErrorMethod context:aContext modifyEntryCount:modifyCount
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   549
    "should an error be ignored ?"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   550
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   551
    IgnoredErrors isNil ifTrue:[^ false].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   552
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   553
    "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   554
    IgnoredErrors do:[:ign |
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   555
        (ign isHaltIgnoredInMethod:errorMethod line:lineNrInErrorMethod context:aContext) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   556
            Transcript showCR:'Debugger [info]: error ignored: %1' with:ign.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   557
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   558
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   559
            ign isHaltIgnored ifFalse:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   560
                Transcript showCR:'Debugger [info]: no longer ignored (rest count=0)'.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   561
                IgnoredErrors remove:ign ifAbsent:[].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   562
            ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   563
            ^ true.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   564
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   565
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   566
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   567
    IgnoredErrors := (IgnoredErrors reject:[:ign | ign isActive not]) asNilIfEmpty.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   568
    ^ false.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   569
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   570
    "Created: / 27-02-2019 / 22:33:37 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   571
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   572
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
   573
isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod context:aContext modifyEntryCount:modifyCount
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   574
    "should a halt be ignored ?"
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   575
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   576
    IgnoredHalts isNil ifTrue:[^ false].
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   577
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   578
    "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   579
    IgnoredHalts do:[:ign |
16376
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   580
        (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod context:aContext) ifTrue:[
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   581
            Transcript showCR:'Debugger [info]: halt/break ignored: %1' with:ign.
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   582
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   583
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   584
            ign isHaltIgnored ifFalse:[
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   585
                Transcript showCR:'Debugger [info]: no longer ignored (rest count=0)'.
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   586
                IgnoredHalts remove:ign ifAbsent:[].
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   587
            ].
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   588
            ^ true.
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
   589
        ].
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   590
    ].
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   591
13162
e19746a3bf73 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13111
diff changeset
   592
    IgnoredHalts := (IgnoredHalts reject:[:ign | ign isActive not]) asNilIfEmpty.
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   593
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   594
    ^ false.
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   595
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   596
    "Modified (comment): / 06-03-2012 / 12:51:43 / cg"
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   597
!
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
   598
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   599
removeInactiveErrors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   600
    "removes ignores for methods which are no longer present"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   601
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   602
    IgnoredErrors notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   603
        IgnoredErrors := IgnoredErrors select:[:i | i isActive].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   604
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   605
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   606
    "Created: / 27-02-2019 / 13:46:46 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   607
    "Modified (comment): / 27-02-2019 / 22:26:10 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   608
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   609
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   610
removeInactiveIgnores
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   611
    "removes ignores for methods which are no longer present"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   612
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   613
    IgnoredHalts notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   614
        IgnoredHalts := IgnoredHalts select:[:i | i isActive].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   615
    ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   616
    IgnoredErrors notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   617
        IgnoredErrors := IgnoredErrors select:[:i | i isActive].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   618
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   619
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   620
    "Modified: / 27-02-2019 / 22:26:17 / Claus Gittinger"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   621
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   622
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   623
stopIgnoringHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   624
    "forget about all ignored halts"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   625
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   626
    IgnoredHalts := IgnoredErrors := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   627
    Smalltalk changed:#ignoredHalts.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   628
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   629
    "Modified: / 27-02-2019 / 22:24:31 / Claus Gittinger"
15302
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   630
!
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   631
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   632
stopIgnoringHaltsFor:haltingMethod atLineNr:lineNrInHaltingMethod
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   633
    "remove the information (if any) about the ignore-state of a halt;
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   634
     effectively reenables the breakpoint/halt"
7d996ab57223 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15260
diff changeset
   635
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   636
    IgnoredHalts notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   637
        IgnoredHalts := IgnoredHalts reject:[:ign |
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   638
            (ign isForMethod:haltingMethod line:lineNrInHaltingMethod)
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   639
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   640
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   641
    IgnoredErrors notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   642
        IgnoredErrors := IgnoredErrors reject:[:ign |
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   643
            (ign isForMethod:haltingMethod line:lineNrInHaltingMethod)
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   644
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   645
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   646
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   647
    "Modified: / 27-02-2019 / 22:25:06 / Claus Gittinger"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   648
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   649
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   650
!DebugView class methodsFor:'instance creation / entering'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   651
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   652
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   653
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   654
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   655
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   656
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   657
    ^ self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   658
        enter:thisContext sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   659
        withMessage:'Debugger Entered'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   660
        mayProceed:true.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   661
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   662
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   663
enter:aContext withMessage:aString
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   664
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   665
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   666
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   667
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   668
    ^ self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   669
        enter:aContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   670
        withMessage:aString
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   671
        mayProceed:true
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   672
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   673
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   674
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   675
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   676
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   677
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   678
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   679
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   680
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   681
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   682
    |nDebuggers display|
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   683
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   684
    nDebuggers := (NumberOfDebuggers ? 0).
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   685
    (nDebuggers < 0 or:[nDebuggers > self maxNumberOfDebuggers]) ifTrue:[
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   686
        "/ ouch - we lost track of some...
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   687
        nDebuggers := NumberOfDebuggers := self allSubInstances count:[:d | d isOpen].
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   688
    ].
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   689
    nDebuggers > self maxNumberOfDebuggers ifTrue:[
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   690
        MiniDebugger enter:aContext withMessage:'too many debuggers - looping?' mayProceed:true.
13111
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   691
    ].
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   692
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   693
    DebuggingDebugger == true ifTrue:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   694
        '==> enter1: (' print. aContext print. ')' printCR.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   695
    ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   696
14695
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   697
    display := (self debuggerOnMainDisplayOnly)
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   698
                ifTrue:[ Display ]
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   699
                ifFalse:[ Screen current ].
14695
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   700
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   701
    Screen currentScreenQuerySignal answer:display
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   702
    do:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   703
        StepInterruptPending := nil.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   704
        ControlInterrupt handle:[:ex |
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   705
            'DebugView [info]: breakpoint in debugger setup ignored [enter.]' infoPrintCR.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   706
            ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   707
            ex proceed
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   708
        ] do:[
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   709
            |debugger|
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   710
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   711
            "
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   712
             well, it could be a stepping or sending debugger up there;
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   713
             in this case, return to it. This happens, when a stepping process
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   714
             runs into an error (for example, a halt). In this case, we want the
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   715
             stepping debugger to come up again instead of a new one.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   716
            "
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   717
            (debugger := self openDebuggerForActiveProcess) notNil ifTrue:[
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   718
                debugger unstep.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   719
                debugger setLabelFor:aString in:Processor activeProcess.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   720
                debugger mayProceed:mayProceed.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   721
                ^ debugger enter:aContext select:nil.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   722
            ].
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   723
        ].
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
   724
        ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
14695
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   725
    ].
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   726
13666
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   727
    "Modified: / 06-11-2013 / 20:58:54 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   728
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   729
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   730
enterException:ex
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   731
    "enter a debugger; if this is a recursive invocation, enter
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   732
     a MiniDebugger instead.
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   733
     This is the standard way of entering the debugger;
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   734
     sent from error- and halt messages."
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   735
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   736
    |retValFromDebugger con|
17546
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   737
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   738
    "/ a quick check for ignored breakpoints here,
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   739
    "/ to shortcut the expensive debugger setup.
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   740
    "/ big speedup when many ignored breakpoints are reached.
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   741
    IgnoredHalts notNil ifTrue:[
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   742
        ((ex creator == NoHandlerError)
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   743
        and:[ ex exception creator == BreakPointInterrupt ])  ifTrue:[
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   744
            (self 
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   745
                isHaltToBeIgnoredIn:(ex suspendedContext method)
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   746
                atLineNr:1
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   747
                context:(ex suspendedContext)
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   748
                modifyEntryCount:true
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   749
            ) ifTrue:[
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   750
                "/ Transcript showCR:'quick ignored'.
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   751
                ^ true.
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   752
            ].
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   753
        ].
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   754
    ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   755
    
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   756
    IgnoredErrors notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   757
        con := ex suspendedContext sender.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   758
        (self 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   759
            isErrorToBeIgnoredIn:(con method)
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   760
            atLineNr:con lineNumber
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   761
            context:con
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   762
            modifyEntryCount:true
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   763
        ) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   764
            "/ Transcript showCR:'error at %1[%2] ignored' 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   765
            "/              with:con method whoString 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   766
            "/              with:con lineNumber.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   767
            ^ AbortOperationRequest raise.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   768
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   769
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   770
17546
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   771
    retValFromDebugger := self
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   772
        enter:ex returnableSuspendedContext
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   773
        withMessage:('[',ex originalSignal class name,']: ',ex descriptionForDebugger)
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
   774
        mayProceed:(ex mayProceed).
17546
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   775
17547
75013621f613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17546
diff changeset
   776
    (retValFromDebugger isNil and:[ ex notNil and:[ex mayProceed ]]) ifTrue:[
75013621f613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17546
diff changeset
   777
        "/ 'retval from debugger: ' print. retValFromDebugger printCR.   
75013621f613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17546
diff changeset
   778
        "/ 'ex: ' print. ex class printCR.   
17546
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   779
        ^ ex defaultResumeValue
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   780
    ].
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   781
    ^ retValFromDebugger
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   782
17547
75013621f613 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17546
diff changeset
   783
    "Modified: / 20-06-2017 / 12:20:22 / cg"
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
   784
    "Modified: / 27-02-2019 / 22:45:25 / Claus Gittinger"
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   785
!
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   786
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   787
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   788
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   789
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   790
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   791
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   792
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   793
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   794
    StepInterruptPending := nil.
13111
62e4e27bd560 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13059
diff changeset
   795
    NumberOfDebuggers := (NumberOfDebuggers ? 0) + 1.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   796
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   797
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   798
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   799
    ControlInterrupt handle:[:ex |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   800
        'DebugView [info]: breakpoint in debugger setup ignored [enterUncond.]' infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   801
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   802
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   803
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   804
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   805
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   806
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   807
    aDebugger isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   808
        'DebugView [error]: cannot open debugger' errorPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   809
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   810
        mayProceed ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   811
            (Dialog confirm:'Error/Breakpoint caught.\\Press Continue or Abort.' withCRs
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   812
                   yesLabel:'Continue' noLabel:'Abort')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   813
            ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   814
                ^ nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   815
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   816
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   817
            self information:'Error caught.\\Press OK to abort the operation.' withCRs.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   818
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   819
        AbortOperationRequest raise.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   820
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   821
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   822
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   823
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   824
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   825
    aDebugger enter:aContext select:nil.
17601
79fab5be96bb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17566
diff changeset
   826
    "/ thisContext fullPrintAll.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   827
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   828
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   829
    "
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   830
        nil halt
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   831
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   832
17546
5800045f456a #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17526
diff changeset
   833
    "Modified: / 20-06-2017 / 12:07:11 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   834
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   835
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   836
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   837
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   838
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   839
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   840
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   841
    ^ self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   842
        enter:(thisContext sender)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   843
        withMessage:message
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   844
        mayProceed:true.
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   845
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   846
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   847
new
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   848
    "return a new DebugView.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   849
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   850
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   851
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   852
14695
cecbcb8523d9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14680
diff changeset
   853
    |debugger currentScreen debuggerScreen|
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   854
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   855
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   856
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   857
    currentScreen notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   858
        (currentScreen suppressDebugger) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   859
            "/ no debuggers with that device - show an alertBox which aborts...
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   860
            ^ nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   861
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   862
        (currentScreen mayOpenDebugger) ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   863
            "/ no debugger on that device - but on the main screen
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   864
            currentScreen := Display ? Screen default.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   865
        ].
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   866
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   867
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   868
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   869
     need a blocking debugger if no processes or
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
   870
     or if it's a timing/interrupt process
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   871
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   872
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   873
    Processor activeProcessIsSystemProcess ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   874
        ((debugger := CachedExclusive) isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   875
        or:[debugger device ~~ currentScreen
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   876
        or:[currentScreen isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   877
        or:[currentScreen isOpen not]]]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   878
            debugger := self newExclusive
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   879
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   880
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   881
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   882
        CachedDebugger notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   883
            (CachedDebugger device ~~ currentScreen
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   884
            or:[currentScreen isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   885
            or:[currentScreen isOpen not
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   886
            or:[CachedDebugger class ~~ self]]]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   887
                CachedDebugger := nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   888
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   889
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   890
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   891
        (debugger := CachedDebugger) notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   892
            CachedDebugger := nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   893
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   894
            debuggerScreen := currentScreen.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   895
            debuggerScreen isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   896
                "/ use the default display
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   897
                debuggerScreen := Screen default.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   898
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   899
            (debuggerScreen isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   900
            or:[debuggerScreen isOpen not
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   901
            "/ or:[debuggerDevice mayOpenDebugger not]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   902
            ]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   903
                "/ no debugger
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   904
                ^ nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   905
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   906
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   907
            Screen currentScreenQuerySignal answer:debuggerScreen
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   908
            do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   909
                debugger := super new.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   910
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   911
            debugger label:'Debugger'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   912
            debugger icon:self defaultIcon.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   913
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   914
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   915
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   916
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
   917
    "Modified: / 31-07-1997 / 21:20:27 / cg"
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
   918
    "Modified (comment): / 13-02-2017 / 19:59:48 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   919
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   920
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   921
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   922
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   923
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   924
    |debugger|
105
claus
parents: 101
diff changeset
   925
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   926
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   927
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   928
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   929
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   930
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   931
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   932
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   933
!
claus
parents: 101
diff changeset
   934
13666
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   935
openDebuggerForActiveProcess
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   936
    "return an already open debugger for the active process, or nil, if there is none.
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   937
     Open debuggers exist when stepping only, as then, the debugger is left open until the step
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   938
     is reached, to avoid too much flickering and redrawing on the screen"
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   939
17188
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   940
    "
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   941
     well, it could be a stepping or sending debugger up there;
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   942
     in this case, return to it. This happens, when a stepping process
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   943
     runs into an error (for example, a halt). In this case, we want the
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   944
     stepping debugger to come up again instead of a new one.
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   945
    "
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   946
    OpenDebuggers notNil ifTrue:[
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   947
        ^ self openDebuggerForProcess:(Processor activeProcess)
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   948
    ].    
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   949
    ^ nil
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   950
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   951
    "Created: / 06-11-2013 / 20:57:49 / cg"
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   952
!
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   953
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   954
openDebuggerForProcess:aProcess
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   955
    "if aProcess is being debugged and has an open debugger on it, 
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   956
     then return it, or nil, if there is none.
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   957
     Open debuggers also exist as unmapped windows when single-stepping"
13666
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   958
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   959
    "
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   960
     well, it could be a stepping or sending debugger up there;
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   961
     in this case, return to it. This happens, when a stepping process
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   962
     runs into an error (for example, a halt). In this case, we want the
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   963
     stepping debugger to come up again instead of a new one.
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   964
    "
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   965
    OpenDebuggers notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   966
        OpenDebuggers do:[:aDebugger |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   967
            |debuggersProcess|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   968
18557
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   969
            (aDebugger notNil 
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   970
              and:[(aDebugger ~~ 0)
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   971
              and:[aDebugger class == self]]
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   972
            ) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   973
                debuggersProcess := aDebugger inspectedProcess.
17188
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   974
                debuggersProcess == aProcess ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   975
                    aDebugger device isOpen ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   976
                        DebuggingDebugger == true ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   977
                            'reusing cached debugger' errorPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   978
                        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   979
                        aDebugger unstep.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   980
                        ^ aDebugger.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   981
                    ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   982
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   983
                (debuggersProcess notNil and:[ debuggersProcess isDead ]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   984
                    aDebugger destroy.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   985
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   986
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
   987
        ]
13666
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   988
    ].
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   989
    ^ nil
18557
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   990
1711a2c07fa5 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18524
diff changeset
   991
    "Modified: / 24-01-2019 / 13:55:32 / Claus Gittinger"
13666
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   992
!
72c4ba297f65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13641
diff changeset
   993
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   994
openOn:aProcess
17188
8f420441108e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17185
diff changeset
   995
    "start a debugger on aProcess
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   996
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   997
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   998
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   999
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
  1000
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
  1001
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  1002
    aProcess notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1003
        nm := aProcess name.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1004
        nm notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1005
            nm := (nm contractTo:17) , '-' , aProcess id printString
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1006
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1007
            nm := aProcess id printString
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1008
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1009
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  1010
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1011
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  1012
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  1013
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
  1014
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
  1015
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
  1016
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
  1017
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
  1018
! !
claus
parents: 124
diff changeset
  1019
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1020
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1021
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1022
breakPointMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1023
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1024
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1025
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1026
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1027
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1028
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1029
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1030
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1031
     MenuEditor new openOnClass:DebugView andSelector:#breakPointMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1032
     (Menu new fromLiteralArrayEncoding:(DebugView breakPointMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1033
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1034
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1035
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1036
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1037
    ^ 
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1038
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1039
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1040
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1041
            enabled: canRemoveBreakpoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1042
            label: 'Remove Breakpoint'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1043
            itemValue: removeBreakpoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1044
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1045
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1046
            label: 'Remove all Breakpoints'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1047
            itemValue: removeAllBreakpoints
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1048
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1049
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1050
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1051
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1052
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1053
            label: 'Ignore this Halt/BreakPoint'
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1054
            submenu: 
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1055
           (Menu
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1056
              (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1057
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1058
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1059
                  label: 'Forever (Until Ignoring is Stopped)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1060
                  itemValue: ignoreHaltForever
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1061
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1062
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1063
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1064
                  label: 'For Some Time...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1065
                  itemValue: openIgnoreHaltUntilTimeElapsedDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1066
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1067
               (MenuItem
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  1068
                  label: 'For Another Timeduration'
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  1069
                  itemValue: ignoreHaltUntilAnotherTimeDurationElapsed
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1070
                  isVisible: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrappedAndHasPreviousIgnoreTime
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  1071
                )
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  1072
               (MenuItem
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1073
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1074
                  label: 'For the Next N Times...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1075
                  itemValue: openIgnoreHaltNTimesDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1076
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1077
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1078
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1079
                  label: 'Until Shift-Key is Pressed'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1080
                  itemValue: ignoreHaltUntilShiftKeyIsPressed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1081
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1082
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1083
                  label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1084
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1085
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1086
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1087
                  label: 'In Current Process'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1088
                  itemValue: ignoreHaltForCurrentProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1089
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1090
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1091
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1092
                  label: 'For this Receiver Class'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1093
                  itemValue: ignoreHaltForThisReceiverClass
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1094
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1095
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1096
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  1097
                  label: 'If Called From'
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1098
                  submenuChannel: menuForIgnoreBreakpointIfCalledFromAnyOf
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1099
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1100
               )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1101
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1102
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1103
            )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1104
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1105
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1106
            enabled: isStoppedAtBreakPointWithParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1107
            label: 'Ignore all BreakPoints with this Parameter'
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1108
            submenu: 
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1109
           (Menu
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1110
              (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1111
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1112
                  enabled: isStoppedAtBreakPointWithParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1113
                  label: 'Forever (Reenable in BreakPoint-Browser)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1114
                  itemValue: ignoreBreakpointsWithThisParameterForever
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1115
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1116
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1117
                  enabled: isStoppedAtBreakPointWithParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1118
                  label: 'For Some Time...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1119
                  itemValue: openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1120
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1121
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1122
                  enabled: isStoppedAtBreakPointWithParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1123
                  label: 'For the Next N Times...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1124
                  itemValue: openIgnoreBreakpointsWithThisParameterNTimesDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1125
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1126
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1127
                  enabled: isStoppedAtBreakPointWithParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1128
                  label: 'Until Shift-Key is Pressed'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1129
                  itemValue: ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1130
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1131
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1132
                  label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1133
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1134
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1135
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1136
                  label: 'In Current Process'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1137
                  itemValue: ignoreAllHaltsForCurrentProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1138
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1139
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1140
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1141
                  label: 'For this Receiver Class'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1142
                  itemValue: ignoreAllHaltsForThisReceiverClass
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1143
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1144
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1145
                  enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1146
                  label: 'If Called from Any Of'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1147
                  submenuChannel: menuForIgnoreAllBreakpointsIfCalledFromAnyOf
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1148
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1149
               )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1150
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1151
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1152
            )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1153
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1154
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1155
            label: 'Ignore all Halts/BreakPoints'
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1156
            submenu: 
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1157
           (Menu
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1158
              (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1159
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1160
                  label: 'Forever (Until Ignoring is Stopped)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1161
                  itemValue: ignoreAllHaltsForever
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1162
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1163
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1164
                  label: 'For Some Time...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1165
                  itemValue: openIgnoreAllHaltsUntilTimeElapsedDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1166
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1167
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1168
                  label: 'Until Shift-Key is Pressed'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1169
                  itemValue: ignoreAllHaltsUntilShiftKeyIsPressed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1170
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1171
               )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1172
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1173
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1174
            )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1175
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1176
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1177
            enabled: hasHaltsToIgnore
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1178
            label: 'Stop Ignoring'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1179
            itemValue: stopIgnoringHalts
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1180
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1181
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1182
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1183
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1184
         (MenuItem
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1185
            label: 'Ignore this Error and Abort'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1186
            submenu: 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1187
           (Menu
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1188
              (
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1189
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1190
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1191
                  label: 'Forever (Until Ignoring is Stopped)'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1192
                  itemValue: ignoreErrorForever
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1193
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1194
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1195
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1196
                  label: 'For Some Time...'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1197
                  itemValue: openIgnoreErrorUntilTimeElapsedDialog
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1198
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1199
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1200
                  label: 'For Another Timeduration'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1201
                  itemValue: ignoreErrorUntilAnotherTimeDurationElapsed
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1202
                  isVisible: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrappedAndHasPreviousIgnoreTime
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1203
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1204
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1205
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1206
                  label: 'For the Next N Times...'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1207
                  itemValue: openIgnoreErrorNTimesDialog
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1208
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1209
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1210
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1211
                  label: 'Until Shift-Key is Pressed'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1212
                  itemValue: ignoreErrorUntilShiftKeyIsPressed
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1213
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1214
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1215
                  label: '-'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1216
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1217
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1218
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1219
                  label: 'In Current Process'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1220
                  itemValue: ignoreErrorForCurrentProcess
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1221
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1222
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1223
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1224
                  label: 'For this Receiver Class'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1225
                  itemValue: ignoreErrorForThisReceiverClass
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1226
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1227
               (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1228
                  enabled: isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1229
                  label: 'If Called From'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1230
                  submenuChannel: menuForIgnoreErrorIfCalledFromAnyOf
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1231
                )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1232
               )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1233
              nil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1234
              nil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1235
            )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1236
          )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1237
         (MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1238
            label: '-'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1239
          )
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1240
         (MenuItem
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1241
            enabled: canAddBreakpoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1242
            label: 'Add Breakpoint'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1243
            itemValue: addBreakpoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1244
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1245
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1246
            label: 'Manage Breakpoints'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1247
            itemValue: openBreakPointBrowser
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1248
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1249
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1250
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1251
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1252
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1253
            label: 'Allow Halt in Debugger'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1254
            itemValue: allowBreakPointsInDebugger:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1255
            indication: allowBreakPointsInDebugger
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1256
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1257
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1258
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1259
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1260
      )
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1261
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1262
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1263
classMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1264
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1265
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1266
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1267
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1268
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1269
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1270
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1271
    "
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  1272
     MenuEditor new openOnClass:DebugView andSelector:#receiverMenuSpec
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  1273
     (Menu new fromLiteralArrayEncoding:(DebugView receiverMenuSpec)) startUp
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1274
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1275
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1276
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1277
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1278
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1279
     #(Menu
17106
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1280
        (
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1281
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1282
            enabled: canBrowseImplementingClass
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1283
            label: 'Browse Implementing Class'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1284
            itemValue: browseImplementingClass
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1285
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1286
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1287
            enabled: canBrowseReceiversClass
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1288
            label: 'Browse Receiver''s Class'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1289
            itemValue: browseReceiversClass
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1290
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1291
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1292
            enabled: canBrowseProcessesApplication
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1293
            label: 'Browse Application Class'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1294
            itemValue: browseProcessesApplication
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1295
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1296
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1297
            label: '-'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1298
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1299
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1300
            enabled: canBrowseClassHierarchy
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1301
            label: 'Browse Receiver''s Class Hierarchy'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1302
            itemValue: browseClassHierarchy
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1303
            isVisible: false
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1304
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1305
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1306
            enabled: canBrowseFullClassProtocol
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1307
            label: 'Browse Receiver''s Full Protocol'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1308
            itemValue: browseFullClassProtocol
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1309
            isVisible: false
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1310
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1311
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1312
            label: '-'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1313
            isVisible: false
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1314
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1315
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1316
            enabled: canBrowseProcessesApplication
17107
102e5825228a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17106
diff changeset
  1317
            label: 'Inspect Application'
17106
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1318
            itemValue: inspectProcessesApplication
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1319
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1320
         (MenuItem
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1321
            enabled: canInspectWidgetHierarchy
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1322
            label: 'Inspect Widget Hierarchy'
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1323
            itemValue: inspectWidgetHierarchy
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1324
          )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1325
         )
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1326
        nil
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  1327
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1328
      )
17107
102e5825228a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17106
diff changeset
  1329
102e5825228a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17106
diff changeset
  1330
    "Modified: / 25-11-2016 / 13:14:28 / cg"
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1331
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1332
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1333
contextMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1334
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1335
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1336
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1337
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1338
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1339
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1340
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1341
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1342
     MenuEditor new openOnClass:DebugView andSelector:#contextMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1343
     (Menu new fromLiteralArrayEncoding:(DebugView contextMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1344
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1345
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1346
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1347
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1348
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1349
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1350
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1351
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1352
            enabled: canReturn
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1353
            label: 'Return'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1354
            itemValue: doReturn
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1355
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1356
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1357
            enabled: canRestart
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1358
            label: 'Restart'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1359
            itemValue: doRestart
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1360
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1361
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1362
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1363
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1364
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1365
            enabled: hasContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1366
            label: 'Inspect'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1367
            itemValue: inspectContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1368
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1369
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1370
            label: 'Copy WalkBack Text'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1371
            itemValue: copyWalkbackText
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1372
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1373
         (MenuItem
17473
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1374
            label: 'Copy Detailed WalkBack Text'
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1375
            itemValue: copyWalkbackTextWithVariables
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1376
          )
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1377
         (MenuItem
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1378
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1379
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1380
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1381
            enabled: hasBlockContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1382
            label: 'Find Home Context in Caller Chain...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1383
            itemValue: findHomeContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1384
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1385
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1386
            enabled: hasContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1387
            label: 'Find Context with String in Source...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1388
            itemValue: findContextWithStringInSource
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1389
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1390
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1391
            enabled: hasContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1392
            label: 'Find Context with Value in Variable...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1393
            itemValue: findContextWithValueInVariable
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1394
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1395
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1396
            enabled: hasContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1397
            label: 'Find Next Exception Handler'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1398
            itemValue: findNextExceptionHandlerContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1399
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1400
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1401
            enabled: hasContextSelected
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1402
            label: 'Find Handler For...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1403
            itemValue: findHandlerFor
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1404
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1405
         (MenuItem
18282
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1406
            enabled: hasContextSelected
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1407
            label: 'Find Active Handler...'
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1408
            itemValue: findActiveHandler
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1409
          )
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1410
         (MenuItem
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1411
            label: 'Find Dialog Opener...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1412
            itemValue: doGotoDialogOpener
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1413
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1414
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1415
            label: 'Find Application Action Method...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1416
            itemValue: doGotoApplicationActionMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1417
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1418
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1419
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1420
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1421
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1422
            label: 'Remember Callchain && Highlight on Next Entry'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1423
            itemValue: rememberCallchain
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1424
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1425
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1426
            label: 'Clear Remembered Callchain'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1427
            itemValue: clearRememberedCallchain
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1428
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1429
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1430
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1431
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1432
      )
17473
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1433
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  1434
    "Modified: / 15-03-2017 / 14:21:07 / cg"
18282
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  1435
    "Modified: / 24-07-2018 / 22:37:59 / Claus Gittinger"
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1436
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1438
fileMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1439
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1440
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1441
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1442
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1443
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1444
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1445
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1446
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1447
     MenuEditor new openOnClass:DebugView andSelector:#fileMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1448
     (Menu new fromLiteralArrayEncoding:(DebugView fileMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1449
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1450
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1451
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1452
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1453
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1454
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1455
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1456
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1457
            enabled: canSendEmail
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1458
            label: 'Report a Bug via eMail...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1459
            itemValue: doOpenReportMailApp
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1460
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1461
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1462
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1463
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1464
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1465
            enabled: canCloseAllDebuggers
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1466
            label: 'Close all Debuggers...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1467
            itemValue: closeAllDebuggers
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1468
            isVisible: isNotInspecting
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1469
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1470
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1471
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1472
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1473
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1474
            label: 'Exit'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1475
            itemValue: closeRequest
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1476
            isVisible: isInspecting
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1477
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1478
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1479
            label: 'Close Debugger and Abort'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1480
            itemValue: closeRequest
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1481
            isVisible: isNotInspecting
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1482
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1483
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1484
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1485
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1486
      )
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1487
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1488
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1489
helpMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1490
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1491
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1492
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1493
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1494
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1495
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1496
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1497
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1498
     MenuEditor new openOnClass:DebugView andSelector:#helpMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1499
     (Menu new fromLiteralArrayEncoding:(DebugView helpMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1500
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1501
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1502
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1503
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1504
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1505
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1506
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1507
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1508
            label: 'Debugger''s Documentation'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1509
            itemValue: openHTMLDocument:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1510
            argument: 'tools/debugger/TOP.html'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1511
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1512
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1513
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1514
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1515
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1516
            label: 'About DebugView...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1517
            itemValue: openAboutThisApplication
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1518
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1519
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1520
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1521
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1522
      )
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1523
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1524
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1525
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1526
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1527
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1528
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1529
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1530
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1531
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1532
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1533
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1534
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1535
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1536
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1537
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1538
    <resource: #menu>
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1539
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  1540
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  1541
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1542
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1543
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1544
            label: 'File'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1545
            submenuChannel: fileMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1546
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1547
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1548
            label: 'View'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1549
            submenuChannel: viewMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1550
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1551
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1552
            label: 'Process'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1553
            submenuChannel: processMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1554
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1555
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1556
            label: 'Context'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1557
            submenuChannel: contextMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1558
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1559
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1560
            label: 'Receiver'
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  1561
            isVisible: receiverMenuVisible
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1562
            submenuChannel: classMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1563
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1564
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1565
            label: 'Selector'
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  1566
            isVisible: selectorMenuVisible
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1567
            submenuChannel: selectorMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1568
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1569
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1570
            label: 'Breakpoint'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1571
            submenuChannel: breakPointMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1572
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1573
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1574
            label: 'MENU_Help'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1575
            startGroup: conditionalRight
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1576
            submenuChannel: helpMenuSpec
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1577
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1578
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1579
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1580
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1581
      )
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1582
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1583
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1584
processMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1585
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1586
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1587
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1588
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1589
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1590
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1591
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1592
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1593
     MenuEditor new openOnClass:DebugView andSelector:#processMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1594
     (Menu new fromLiteralArrayEncoding:(DebugView processMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1595
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1596
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1597
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1598
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1599
    ^ 
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1600
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1601
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1602
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1603
            label: 'Continue'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1604
            itemValue: doContinue
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1605
            shortcutKey: CtrlReturn
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1606
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1607
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1608
            label: 'Next (Line-Step)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1609
            itemValue: doNext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1610
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1611
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1612
            label: 'Step'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1613
            itemValue: doStep
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1614
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1615
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1616
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1617
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1618
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1619
            label: 'After 5 Seconds'
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  1620
            submenu: 
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1621
           (Menu
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1622
              (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1623
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1624
                  label: 'Continue'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1625
                  itemValue: doContinueAfterDelay
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1626
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1627
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1628
                  label: 'Next (Line-Step)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1629
                  itemValue: doNextAfterDelay
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1630
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1631
               (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1632
                  label: 'Step'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1633
                  itemValue: doStepAfterDelay
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1634
                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1635
               )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1636
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1637
              nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1638
            )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1639
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1640
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1641
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1642
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1643
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1644
            label: 'Skip to Cursor Line'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1645
            itemValue: skip
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1646
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1647
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1648
            label: 'Step Out (Skip until Return)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1649
            itemValue: skipForReturn
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1650
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1651
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1652
            label: 'Skip until Entering...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1653
            itemValue: skipUntilEntering
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1654
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1655
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1656
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1657
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1658
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1659
            label: 'Abort'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1660
            itemValue: doAbort
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1661
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1662
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1663
            enabled: abortAllIsHandled
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1664
            label: 'Abort All'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1665
            itemValue: doAbortAll
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1666
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1667
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1668
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1669
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1670
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1671
            label: 'Inspect'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1672
            itemValue: doInspectProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1673
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1674
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1675
            label: 'Change Priority...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1676
            itemValue: doChangeProcessPriority
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1677
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1678
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1679
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1680
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1681
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1682
            label: 'Terminate'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1683
            itemValue: doTerminate
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1684
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1685
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1686
            label: 'Hard Terminate (Danger)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1687
            itemValue: quickTerminate
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1688
            isVisible: false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1689
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1690
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1691
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1692
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1693
      )
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1694
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1695
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1696
selectorMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1697
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1698
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1699
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1700
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1701
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1702
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1703
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1704
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1705
     MenuEditor new openOnClass:DebugView andSelector:#selectorMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1706
     (Menu new fromLiteralArrayEncoding:(DebugView selectorMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1707
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1708
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1709
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1710
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1711
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1712
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1713
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1714
         (MenuItem
18097
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1715
            label: 'Bookmark Method in SystemBrowser'
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1716
            itemValue: addBrowserBookmark
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1717
          )
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1718
         (MenuItem
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1719
            label: 'Browse Implementors...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1720
            itemValue: browseImplementorsOf
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1721
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1722
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1723
            label: 'Browse Senders...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1724
            itemValue: browseSendersOf
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1725
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1726
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1727
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1728
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1729
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1730
            enabled: canDefineMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1731
            label: 'Define Missing Method'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1732
            itemValue: doDefineMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1733
          )
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1734
         (MenuItem
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1735
            enabled: canRedefineMethodInReceiverClass
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1736
            label: 'Redefine Method in Receiver Class'
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1737
            itemValue: doRedefineMethodInReceiverClass  
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1738
          )
18097
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1739
         (MenuItem
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1740
            label: '-'
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1741
          )
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1742
         (MenuItem
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1743
            label: 'Inspect Method'
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1744
            itemValue: inspectContextsMethod
3defacfa15f0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18066
diff changeset
  1745
          )
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1746
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1747
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1748
        nil
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1749
      )
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1750
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  1751
    "Modified: / 08-02-2017 / 08:46:50 / cg"
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1752
!
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1753
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1754
viewMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1755
    "This resource specification was automatically generated
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1756
     by the MenuEditor of ST/X."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1757
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1758
    "Do not manually edit this!! If it is corrupted,
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1759
     the MenuEditor may not be able to read the specification."
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1760
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1761
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1762
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1763
     MenuEditor new openOnClass:DebugView andSelector:#viewMenuSpec
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1764
     (Menu new fromLiteralArrayEncoding:(DebugView viewMenuSpec)) startUp
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1765
    "
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1766
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1767
    <resource: #menu>
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1768
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  1769
    ^
12437
7f9093a67e5f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12333
diff changeset
  1770
     #(Menu
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1771
        (
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1772
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1773
            enabled: canShowMore
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1774
            label: 'Show More WalkBack'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1775
            itemValue: showMoreWalkback
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1776
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1777
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1778
            enabled: canShowMore
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1779
            label: 'Show Full WalkBack'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1780
            itemValue: showFullWalkback
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1781
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1782
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1783
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1784
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1785
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1786
            label: 'Show Dense WalkBack'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1787
            itemValue: showingDenseWalkback:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1788
            hideMenuOnActivated: false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1789
            indication: showingDenseWalkback
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  1790
            isVisible: false
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1791
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1792
         (MenuItem
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  1793
            "/ enabled: notShowingDenseWalkbackHolder
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1794
            label: 'Show Support Code (Implementation of Enumerations, Exceptions etc.)'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1795
            itemValue: showingSupportCode:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1796
            hideMenuOnActivated: false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1797
            indication: showingSupportCode
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1798
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1799
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1800
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1801
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1802
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1803
            label: 'Raise Debugger when Entering'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1804
            itemValue: autoRaiseView:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1805
            hideMenuOnActivated: false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1806
            indication: autoRaiseView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1807
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1808
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1809
            label: '-'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1810
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1811
         (MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1812
            label: 'Settings...'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1813
            itemValue: openSettingsDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1814
          )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1815
         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1816
        nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  1817
        nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1818
      )
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  1819
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  1820
    "Modified: / 01-02-2019 / 15:48:18 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1821
! !
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1822
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1823
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1824
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
  1825
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1826
    "return an interesting context to be shown in an error notifier.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1827
     We move up the calling chain, skipping intermediate Signal
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1828
     and Exception contexts, to present the context in which the error
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  1829
     actually occurred.
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1830
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1831
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1832
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1833
12839
b932ddfbdeb7 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12812
diff changeset
  1834
    "/ fetch some contexts...
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1835
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
  1836
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1837
    idx := 1.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1838
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  1839
        someContexts at:idx put:con.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  1840
        con := con sender.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  1841
        idx := idx + 1.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1842
    ].
12839
b932ddfbdeb7 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12812
diff changeset
  1843
    "/ search...
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1844
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1845
    ^ someContexts at:idx.
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  1846
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  1847
    "Modified: / 28-08-2013 / 20:12:47 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1848
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1849
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1850
interestingContextIndexIn:aContextArray
12039
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  1851
    "return an interesting context's index, or nil.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  1852
     This is the context initially shown (selected) in the walkback.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1853
     We move up the calling chain, skipping all intermediate Signal
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  1854
     and Exception contexts, to present the context in which the error actually occurred.
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  1855
     Just for your (my) convenience :-)"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1856
13309
b1581c095cb9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13293
diff changeset
  1857
    |con found offset sel prev rcvr nMax idx methodHome method|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1858
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1859
    "/ Transcript showCR:'x'.
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1860
    "/ Transcript showCR:aContextArray.
7648
acfbc051149f *** empty log message ***
ca
parents: 7647
diff changeset
  1861
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1862
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1863
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1864
    con := aContextArray at:1.
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1865
    "/ Transcript show:'x: '.
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1866
    "/ Transcript showCR:con.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1867
    con isBlockContext ifTrue:[^ 1].
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1868
    method := con method.
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1869
    (method notNil and:[ method isWrapped ]) ifTrue:[^ 1].  "/ we are already there
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1870
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1871
    "/ special case for a breakpoint in an exception handler;
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1872
    "/ then, do NOT skip the exception contexts.
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  1873
    ((con selector == #break) and:[con receiver class == Breakpoint]) ifTrue:[^ 2].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1874
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1875
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1876
    "/ find the exception
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1877
    1 to:5 do:[:i |
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1878
        found isNil ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1879
            con := aContextArray at:i ifAbsent:nil.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1880
            con notNil ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1881
                sel := con selector ? ''.
18451
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1882
                sel == #halt ifTrue:[^ i+1].
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1883
                
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1884
                (sel isSymbol
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1885
                and:[ (sel startsWith:'raise')
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  1886
                and:[ ((rcvr := con receiver) isProtoObject not)
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1887
                and:[ rcvr isExceptionCreator]]]) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1888
                    offset := i.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1889
                    found := con.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1890
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1891
                    "/ if this is a noHandler exception,
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1892
                    "/ skip forward to the erroneous context
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1893
                    (rcvr isException) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1894
                        rcvr creator == Signal noHandlerSignal ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1895
                            found := rcvr suspendedContext.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1896
                            offset := aContextArray identityIndexOf:found.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1897
                        ]
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1898
                    ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1899
                ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1900
            ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1901
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1902
    ].
18451
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1903
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1904
    "/ Transcript showCR:con.
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1905
    "/ Transcript showCR:con receiver.
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1906
    "/ Transcript showCR:(aContextArray at:1).
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  1907
    "/ Transcript show:'1 '; showCR:found.
12839
b932ddfbdeb7 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12812
diff changeset
  1908
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1909
    found isNil ifTrue:[
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1910
        "/ this is a kludge, but convenient.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1911
        "/ show the place where the error (divisionByZero...) happend,
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1912
        "/ not where the signal was raised.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1913
        con := (aContextArray at:1).
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1914
        sel := con methodHome selector.
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1915
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  1916
"/ Transcript show:'2 '; showCR:con.
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1917
        "/ typically a DivisionByZero - show caller of division
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1918
        (sel == #//
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1919
        or:[sel == #/
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1920
        or:[sel == #\\]]) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1921
            ^ 2
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1922
        ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1923
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1924
        "/ show the place of the bad message; not where the Signal was raised...
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1925
        (sel == #doesNotUnderstand:) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1926
            idx := 3.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1927
            nMax > 2 ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1928
                sel := (aContextArray at:idx) selector ? ''.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1929
                sel == #doesNotUnderstand: ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1930
                    idx := 4
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1931
                ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1932
                nMax > idx ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1933
                    sel := (aContextArray at:idx) selector ? ''.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1934
                    "/ show the place of the perfor-send; not where the Signal was raised...
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1935
                    ((sel == #perform:)
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1936
                    or:[sel startsWith:'perform:with']) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1937
                        idx := idx + 1
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1938
                    ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1939
                ]
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1940
            ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1941
            ^ idx min:nMax
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1942
        ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1943
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1944
        "/ show the bad method; not where the Signal was raised...
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1945
        (sel == #noByteCode) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1946
            ^ 2
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1947
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1948
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1949
"/        "/ show the place of the halt; not where the HaltSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1950
"/        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1951
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1952
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1953
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1954
"/        "/ show the place of the shouldImplement; not where the Signal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1955
"/        (sel == #shouldImplement) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1956
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1957
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1958
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1959
"/        "/ show the place of error-call; not where the ErrorSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1960
"/        ((sel == #error:mayProceed:)
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1961
"/        or:[ sel == #signalFailure:resumable:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1962
"/            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1963
"/                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1964
"/                sel == #mustBeBoolean ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1965
"/                    ^ 3
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1966
"/                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1967
"/            ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1968
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1969
"/        ].
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
  1970
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1971
        "/ show the place of signalInterrupt-call; not where the Signal was raised...
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1972
        (sel == #signalInterrupt:) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1973
            ^ 2
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1974
        ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1975
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1976
"/        "/ show the place of error-call; not where the ErrorSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1977
"/        ((sel == #error) or:[sel == #error:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1978
"/            con method mclass == Object ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1979
"/                ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1980
"/            ]
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1981
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1982
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1983
"/        "/ show the place of the send; not where the Signal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1984
"/        (sel == #subclassResponsibility) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1985
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1986
"/        ].
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  1987
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1988
        "/ show the place of the bad index; not where the Signal was raised...
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1989
        ( #(#notIndexed
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1990
            #indexNotIntegerOrOutOfBounds:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1991
            #subscriptBoundsError:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1992
            #elementBoundsError:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1993
            "/ #subclassResponsibility
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1994
        ) includes:sel) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1995
            idx := 2.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1996
            [ idx <= 3
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1997
                and:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1998
                    sel := (aContextArray at:idx) selector.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  1999
                    #(#notIndexed
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2000
                      #indexNotIntegerOrOutOfBounds:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2001
                      #subscriptBoundsError:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2002
                      #elementBoundsError: ) includes:sel
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2003
                ]
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2004
            ] whileTrue:[ idx := idx + 1 ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2005
            sel := (aContextArray at:idx) selector.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2006
            (nMax > idx and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2007
            ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2008
                sel := (aContextArray at:idx+1) selector.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2009
                (nMax > (idx+1) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2010
                ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2011
                    sel := (aContextArray at:idx+2) selector.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2012
                    (nMax > (idx+2) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2013
                    ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2014
                        ^ idx+3
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2015
                    ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2016
                    ^ idx+2
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2017
                ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2018
                ^ idx+1
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2019
            ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2020
            ^ idx
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2021
        ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2022
        offset := 1.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2023
    ].
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2024
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2025
    "/ the above is all too hard-coded;
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2026
    "/ ask the method, if it thinks it should be skipped in the walkback.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2027
    "/ as more methods get flagged, remove code from above.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2028
    con := aContextArray at:offset ifAbsent:nil.
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  2029
    "/ Transcript show:'2 '; showCR:con.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2030
    [
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2031
        con notNil
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2032
        and:[ (methodHome := con methodHome) notNil
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2033
        and:[ (method := methodHome method) notNil
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2034
        and:[ method shouldBeSkippedInDebuggersWalkBack ]]]
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2035
    ] whileTrue:[
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  2036
        "/ Transcript showCR:con methodHome method.
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2037
        offset := offset + 1.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2038
        con := aContextArray at:offset ifAbsent:nil.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  2039
    ].
13309
b1581c095cb9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13293
diff changeset
  2040
    methodHome := nil. "/ help GC
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2041
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2042
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2043
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2044
     Exception contexts
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2045
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2046
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2047
    rcvr := con receiver.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2048
    [
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  2049
        rcvr isProtoObject not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2050
    ] whileTrue:[
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2051
        prev := con.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2052
        nMax > offset ifFalse:[^ offset].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2053
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2054
        offset := offset + 1.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2055
        con := aContextArray at:offset.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2056
        rcvr := con receiver.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2057
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2058
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2059
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2060
     now, we are one above the raising context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2061
    "
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2062
"/ Transcript show:'3 '; showCR:con.
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2063
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2064
    (con selector == #retry:coercing:) ifTrue:[
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2065
        "/ show the operation which failed to coerce, not the coerce
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2066
        ^ offset + 1
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2067
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2068
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2069
    "
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2070
     if the sender-method of the raise is one of object's error methods ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2071
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2072
    ( #( halt halt:
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2073
         error error:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2074
         doesNotUnderstand:
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2075
         subclassResponsibility
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2076
         primitiveFailed) includes:con selector)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2077
    ifTrue:[
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2078
        con selector == #doesNotUnderstand: ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2079
            "
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2080
             one more up, to get to the originating context
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2081
            "
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2082
            con := aContextArray at:(offset + 1).
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2083
            con isNil ifTrue:[^ offset].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2084
            offset := offset + 1.
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2085
        ].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2086
        con := aContextArray at:(offset + 1).
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2087
        con isNil ifTrue:[^ offset].
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2088
        offset := offset + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2089
    ] ifFalse:[
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2090
        "
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
  2091
         ok, got the raise - if it's a BreakPoint, look for the sender
16730
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2092
        "
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2093
        (prev notNil and:[prev receiver == BreakPointInterrupt]) ifTrue:[
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2094
            offset := offset + 1
d3a953901bf1 #OTHER by mawalch
mawalch
parents: 16623
diff changeset
  2095
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2096
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2097
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2098
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2099
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  2100
    "Created: / 17-11-2001 / 20:37:49 / cg"
13398
8d20abbafdb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13394
diff changeset
  2101
    "Modified: / 28-08-2013 / 20:23:35 / cg"
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
  2102
    "Modified (format): / 13-02-2017 / 19:59:43 / cg"
18451
a0e65694b34b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18434
diff changeset
  2103
    "Modified: / 10-10-2018 / 12:21:45 / Claus Gittinger"
17978
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2104
!
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2105
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2106
withDebuggingFlagSetDo:aBlock
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2107
    "mark this process as a process executing a debugger.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2108
     This can be used to not delay on certain operations (e.g. Lazy and Bridge proxies."
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2109
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2110
    |activeProcess|
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2111
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2112
    activeProcess := Processor activeProcess.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2113
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2114
    ^ [
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2115
        activeProcess environmentAt:#isDebuggerProcess put:true.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2116
        aBlock value.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2117
    ] on:IsDebuggingQuery do:[:ex|
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2118
        ex proceedWith:true.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2119
    ] ensure:[
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2120
        activeProcess environmentAt:#isDebuggerProcess put:false.
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2121
    ].
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2122
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2123
    "Created: / 01-02-2018 / 10:05:06 / stefan"
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2124
    "Modified: / 01-02-2018 / 23:35:30 / stefan"
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  2125
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  2126
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2127
!DebugView class methodsFor:'private'!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2128
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2129
errorSelectors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2130
    "these can be ignored via the menu"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2131
    
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2132
    ^ #( 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2133
        #'subclassResponsibility' #'subclassResponsibility:' 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2134
    ).
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2135
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2136
    "Created: / 27-02-2019 / 13:38:12 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2137
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2138
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2139
haltSelectors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2140
    "these can be ignored via the menu"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2141
    
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2142
    ^ #( #'halt' #'halt:' 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2143
         #'breakPoint:' #'breakPoint:info:' #'break'
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2144
    ).
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2145
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2146
    "Modified (format): / 27-01-2012 / 11:10:00 / cg"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2147
    "Modified (comment): / 27-02-2019 / 13:38:25 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2148
! !
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2149
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2150
!DebugView class methodsFor:'utilities'!
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2151
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2152
withOptionToIgnoreException:exceptionOrHandlerSet do:aBlock
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2153
    "execute aBlock; 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2154
     if any from exceptionOrHandlerSet is raised during the execution,
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2155
     open a confirmation dialog, asking if the debugger should be entered.
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2156
     For halts/breakpoints, honors the ignored halt/break list;
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2157
     also, two checkboxes are added, to also ignore them in the future"
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2158
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2159
    ^ exceptionOrHandlerSet 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2160
        handle:[:ex |     
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2161
            |msg descr where whatError showIgnoreOptions 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2162
             ignoreForSomeTimeHolder ignoreForEverHolder 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2163
             lineNrOfHalt haltingMethod resources|
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2164
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2165
            showIgnoreOptions := false.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2166
            ignoreForSomeTimeHolder := false asValue.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2167
            ignoreForEverHolder := false asValue.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2168
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2169
            (ControlInterrupt accepts:ex creator) ifTrue:[
16994
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2170
                |suspendedContext sender|
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2171
                
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2172
                "/ also deal with ignored breakpoints here;
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2173
                "/ otherwise, it is almost impossible to place a breakpoint into
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2174
                "/ RB-code, and ignoring it...
16994
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2175
                suspendedContext := ex suspendedContext.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2176
                sender := suspendedContext sender.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2177
                "/ suspendedContext selector == #break ifTrue:[
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2178
                "/     lineNrOfHalt := sender lineNumber.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2179
                "/     haltingMethod := sender method.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2180
                "/  ] ifFalse:[
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2181
                    lineNrOfHalt := sender lineNumber.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2182
                    haltingMethod := sender method.
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2183
                "/ ]. 
488f269b2cf0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16985
diff changeset
  2184
                suspendedContext := sender := nil.
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2185
                "/ Transcript showCR:haltingMethod.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2186
                "/ Transcript showCR:lineNrOfHalt.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2187
                (self 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2188
                    isHaltToBeIgnoredIn:haltingMethod
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2189
                    atLineNr:lineNrOfHalt
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2190
                    context:nil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2191
                    modifyEntryCount:false
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2192
                ) ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2193
                    Transcript showCR:'breakpoint ignored in background processing'.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2194
                    ^ ex proceed.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2195
                ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2196
                showIgnoreOptions := true.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2197
                whatError := 'Halt/Breakpoint:'
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2198
            ] ifFalse:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2199
                whatError := 'Error encountered:'
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2200
            ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2201
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2202
            resources := self resources.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2203
            descr := ex description allBold.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2204
            where := ex suspendedContext printString.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2205
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2206
            Dialog modifyingBoxWith:[:box |
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2207
                showIgnoreOptions ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2208
                    box verticalPanel 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2209
                        add:(View new height:20);
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2210
                        add:(CheckBox
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2211
                                    label:(resources string:'Ignore this Halt/Break for some time (30s)')
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2212
                                    model:ignoreForSomeTimeHolder);
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2213
                        add:(CheckBox
16580
46f802d45b1a #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16535
diff changeset
  2214
                                    label:(resources string:'Ignore this Halt/Break forever')
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2215
                                    model:ignoreForEverHolder).
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2216
                ].    
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2217
            ] do:[
16611
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2218
                |answer canRemove labels actions|
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2219
16811
770081e56e09 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16801
diff changeset
  2220
                "/ cannot remove halts or coded breakpoints.                
770081e56e09 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16801
diff changeset
  2221
                canRemove := haltingMethod notNil and:[haltingMethod isMethodWithBreakpoints or:[ haltingMethod isBreakpointed ]].
16611
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2222
                labels := #('Ignore' 'Remove Breakpoint' 'Debug' ).
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2223
                actions := #(ignore remove debug).
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2224
                canRemove ifFalse:[
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2225
                    labels := #('Ignore' 'Debug' ).
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2226
                    actions := #(ignore debug).
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2227
                ].    
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2228
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2229
                answer := OptionBox
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2230
                            choose:(self resources 
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2231
                                        stringWithCRs:'%1\%2\\%3'
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2232
                                        with:whatError
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2233
                                        with:descr
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2234
                                        with:where)
16611
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2235
                            label:whatError 
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2236
                            image:nil 
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2237
                            labels:(resources array:labels)
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2238
                            values:actions 
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2239
                            default:#ignore 
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2240
                            onCancel:#ignore.
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2241
"/                answer := Dialog
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2242
"/                            confirm:(self resources 
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2243
"/                                        stringWithCRs:'%1\%2\\%3'
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2244
"/                                        with:whatError
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2245
"/                                        with:descr
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2246
"/                                        with:where)
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2247
"/                            yesLabel:(resources string:'Debug')
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2248
"/                            noLabel:(resources string:'Ignore').
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2249
                
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2250
                (ignoreForSomeTimeHolder value or:[ignoreForEverHolder value]) ifTrue:[
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2251
                    self
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2252
                        ignoreHaltIn:haltingMethod at:lineNrOfHalt
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2253
                        forCount:(ignoreForEverHolder value ifTrue:[-1] ifFalse:[nil]) 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2254
                        orTimeDuration:(ignoreForSomeTimeHolder value ifTrue:[30 seconds] ifFalse:[nil]) 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2255
                        orUntilShiftKey:false
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2256
                        orReceiverClass:nil orProcess:nil
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2257
                        orIfCalledFromMethod:nil.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2258
                ].
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2259
16611
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2260
                answer == #remove ifTrue:[
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2261
                    haltingMethod isMethodWithBreakpoints ifTrue:[
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2262
                        haltingMethod disableBreakpointInLine:lineNrOfHalt
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2263
                    ] ifFalse:[
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2264
                        haltingMethod isBreakpointed ifTrue:[
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2265
                            haltingMethod clearBreakPoint
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2266
                        ].    
16623
0e857d5919f4 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16611
diff changeset
  2267
                    ].
0e857d5919f4 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16611
diff changeset
  2268
                    ex proceed
16611
961f3a9075f8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16580
diff changeset
  2269
                ].
16623
0e857d5919f4 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16611
diff changeset
  2270
                answer == #debug ifTrue:[
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2271
                    ex reject.
16623
0e857d5919f4 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16611
diff changeset
  2272
                ].
0e857d5919f4 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16611
diff changeset
  2273
                ex proceed
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2274
            ]
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2275
        ] 
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2276
        do:aBlock.
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2277
    
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2278
    "
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2279
     HaltInterrupt withOptionToIgnoreDo:[self halt]   -- catches this
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2280
     HaltInterrupt withOptionToIgnoreDo:[self error]  -- but not this  
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2281
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2282
     -- catches both, but disable buttons are only shown for halt/breaks
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2283
     ControlInterrupt withOptionToIgnore:(HaltInterrupt,Error) do:[self halt]
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2284
     ControlInterrupt withOptionToIgnore:(HaltInterrupt,Error) do:[self error]
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2285
    "
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2286
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  2287
    "Modified (comment): / 27-02-2019 / 22:28:58 / Claus Gittinger"
16434
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2288
! !
f816729c21ac #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16430
diff changeset
  2289
14662
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2290
!DebugView methodsFor:'accessing'!
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2291
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2292
contextInspector
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2293
    ^ contextInspector
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2294
!
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2295
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2296
exitAction
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2297
    ^ exitAction
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2298
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2299
    "Created: / 26-01-2019 / 17:22:58 / Claus Gittinger"
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2300
!
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2301
14662
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2302
inspectedProcess
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2303
    ^ inspectedProcess
18572
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2304
!
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2305
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2306
stepHow
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2307
    ^ stepHow
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2308
5d6a23a608fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18567
diff changeset
  2309
    "Created: / 30-01-2019 / 02:22:31 / Claus Gittinger"
14662
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2310
! !
4fcc2440b6a4 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14640
diff changeset
  2311
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2312
!DebugView methodsFor:'aspects'!
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2313
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2314
receiverMenuVisible
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2315
    ^ true
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2316
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2317
    "Created: / 01-02-2019 / 16:00:18 / Claus Gittinger"
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2318
!
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2319
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2320
selectorMenuVisible
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2321
    ^ true
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2322
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2323
    "Created: / 01-02-2019 / 15:58:33 / Claus Gittinger"
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2324
!
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2325
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2326
verboseBacktraceHolder
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2327
    verboseBacktraceHolder isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2328
        verboseBacktraceHolder := ValueHolder with:false
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2329
    ].
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2330
    ^ verboseBacktraceHolder
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2331
! !
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  2332
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2333
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2334
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2335
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2336
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2337
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2338
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2339
    m notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2340
        self updateMenuItems.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2341
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2342
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2343
            abortButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2344
            m enable:#doAbort.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2345
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2346
            abortButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2347
            m disable:#doAbort.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2348
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2349
        exclusive ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2350
            terminateButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2351
            m disable:#doTerminate.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2352
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2353
            terminateButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2354
            m enable:#doTerminate.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2355
        ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2356
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2357
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2358
    mayProceed == false ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2359
        continueButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2360
        m notNil ifTrue:[m disable:#doContinue].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2361
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2362
        continueButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2363
        m notNil ifTrue:[m enable:#doContinue]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2364
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2365
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2366
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2367
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2368
13842
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2369
enter
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2370
    "enter a debugger"
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2371
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2372
    <context: #return>
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2373
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2374
    ^ self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2375
        enter:thisContext sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2376
        select: nil.
13842
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2377
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2378
    "Modified: / 28-08-2012 / 21:13:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2379
!
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  2380
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2381
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2382
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2383
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2384
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2385
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2386
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2387
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c 
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2388
     userprefs logFile|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2389
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  2390
    DebuggingDebugger == true ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2391
        '==> enter2: (' print. aContext print.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2392
        ') select: ' print. initialSelectionOrNil printCR.
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  2393
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2394
    thisContext isRecursive ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2395
        "/ care for the special case, were the Debugger was autoloaded.
16860
ad053a633260 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16811
diff changeset
  2396
        "/ in this case, thisContext IS recursive, but that's no error condition.
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2397
        foundNoByteCodeContext := false.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2398
        foundExitContext := false.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2399
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2400
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2401
        [
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2402
         foundNoByteCodeContext not
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2403
         and:[ foundExitContext not
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2404
         and:[c notNil
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2405
         and:[c selector ~~ #enter:withMessage:mayProceed:
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2406
        ]]]]
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2407
        whileTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2408
            c selector == #exit_unwindThenDo: ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2409
                foundExitContext := true
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2410
            ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2411
            c selector == #noByteCode ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2412
                foundNoByteCodeContext := true
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2413
            ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2414
            c := c findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2415
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2416
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2417
        (foundNoByteCodeContext not
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2418
        and:[ foundExitContext not]) ifFalse:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2419
            ('DebugView [warning]: reentered') errorPrintCR.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2420
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2421
            ^ MiniDebugger
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2422
                enter:aContext
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2423
                withMessage:'DebugView [error]: recursive error (in debugger)'
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2424
                mayProceed:mayProceed.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2425
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2426
        foundExitContext ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2427
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2428
            ^ self.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2429
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2430
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  2431
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  2432
    "/'entering: ' print. aContext printCR.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  2433
    "/'initial: ' print. initialSelectionOrNil printCR.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  2434
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  2435
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  2436
    (self isHaltToBeIgnored) ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2437
        ^ self.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  2438
    ].
11892
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2439
"/    "/ does not work yet - but we should ignore any breakpoints while stepping
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2440
"/    (stepping and:[steppedContext notNil]) ifTrue:[
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2441
"/        self isEnteredDueToBreakpointOrHalt ifTrue:[
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2442
"/            'DebugView [info]: ignored other interrupt while stepping' infoPrintCR.
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2443
"/            ^ self
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2444
"/        ].
d43bf1e174b5 step skipping code removed
Claus Gittinger <cg@exept.de>
parents: 11890
diff changeset
  2445
"/    ].
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2446
    userprefs := UserPreferences current.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2447
    "/ optionally log this debugger entry
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2448
    (logFile := userprefs debuggerLogFile) notNil ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2449
        logFile asFilename appendingFileDo:[:s |
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2450
            s cr.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2451
            s nextPutLine:'-----------------------'.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2452
            Timestamp now printOn:s. 
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2453
            s nextPutAll:' ['; nextPutAll:Processor activeProcess name; nextPutAll:']'; cr.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2454
            s cr.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2455
            aContext fullPrintAllOn:s
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2456
        ].    
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2457
    ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2458
    
13965
6213444511ae class: DebugView
Stefan Vogel <sv@exept.de>
parents: 13934
diff changeset
  2459
    iAmNew := self drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2460
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2461
    self initializeVerboseBacktraceHolder.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  2462
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  2463
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2464
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2465
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2466
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2467
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2468
    stepHow := nil.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2469
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2470
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2471
    "/ if debugger is entered while a box has grabbed the
9076
Claus Gittinger <cg@exept.de>
parents: 9034
diff changeset
  2472
    "/ pointer, we must ungrab - otherwise X won't talk to us here.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2473
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2474
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2475
    "/ Q: this is good for multi-screen apps (where an error should not happen),
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2476
    "/    but not for multi-user development, where the debugger is entered often.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2477
    "/    What is a good solution to this dilemma ?
1279
84ec8d33eba8 ungrab all screens in case of an error
Claus Gittinger <cg@exept.de>
parents: 1274
diff changeset
  2478
    Screen allScreens do:[:aScreen |
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2479
        aScreen ungrabPointer.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2480
        aScreen ungrabKeyboard.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2481
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2482
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2483
    ("inspectedProcess suspendedContext isNil
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  2484
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2485
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  2486
    ] ifFalse:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2487
        terminateButton enable.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2488
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  2489
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2490
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  2491
    iAmNew ifFalse:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2492
        "/ not the first time - disable buttons & menus
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2493
        "/ from the previous life
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2494
        self turnOffAllButtons.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2495
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2496
        m := contextView middleButtonMenu.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2497
        m notNil ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2498
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2499
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2500
        self showingDenseWalkback:(self verboseBacktraceHolder value not).
132
claus
parents: 127
diff changeset
  2501
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2502
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  2503
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2504
    windowGroup isNil ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2505
        self windowGroup: WindowGroup new.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2506
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2507
    ].
132
claus
parents: 127
diff changeset
  2508
    exclusive ifFalse:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2509
        "/ create a (modal) windowGroup for myself
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2510
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2511
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2512
    ] ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2513
        "/ create a windowGroup with a synchronous sensor for me
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2514
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2515
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2516
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2517
    windowGroup setProcess:Processor activeProcess.
17978
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2518
    self class withDebuggingFlagSetDo:[
11857
e561b4e978d0 Answer IsDebuggingQuery (with true).
Stefan Vogel <sv@exept.de>
parents: 11837
diff changeset
  2519
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2520
        "
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2521
         get the walkback list; clear inspectors if we did not come here by single stepping)
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2522
        "
12039
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2523
"/Transcript show:'0 '; showCR:aContext.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2524
"/Transcript show:'0 '; showCR:thisContext sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2525
"/Transcript show:'0 '; showCR:thisContext sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2526
"/Transcript show:'0 '; showCR:thisContext sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2527
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2528
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2529
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2530
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2531
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender .
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2532
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2533
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2534
"/Transcript show:'0 '; showCR:thisContext sender sender sender sender sender sender sender sender sender sender sender.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2535
"/Transcript showCR:initialSelectionOrNil.
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2536
        self setContext:aContext releaseInspectors:(exitAction ~~ #step).
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2537
        "/'after setContext; first is ' print.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2538
        "/(contextArray at:1 ifAbsent:nil) printCR.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2539
        self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2540
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2541
        self updateButtonsAndMenuItemsForContext:aContext.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2542
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2543
        "
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2544
         If this is a new debugger, do a realize.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2545
         Otherwise, its probably better to do a map, which shows the
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2546
         view at the previous position, without a need for the user to set the
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2547
         position again
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2548
        "
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2549
        iAmNew ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2550
            self realize.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2551
        ] ifFalse:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2552
            self remap.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2553
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2554
        self setForegroundWindow.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2555
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2556
        exclusive ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2557
            self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2558
Debugging system process `' , (inspectedProcess nameOrId) printString , '''.
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2559
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2560
This is a modal debugger - all event processing is stopped..
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2561
Therefore, you cannot interact with other views or
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2562
open any other tools while this debugger is active.
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2563
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2564
Also, there is no event processing (redraw) for other views.'
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2565
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2566
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2567
        self autoRaiseView ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2568
            "/ self raise.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2569
            self raiseDeiconified.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2570
            self topView activate; setForegroundWindow; activate.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2571
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2572
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2573
        canContinue := true.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2574
        exitAction := nil.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2575
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2576
        "/ enter private event handling loop. This is left (and we come back here again)
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2577
        "/ when any button was pressed which requires continuation of the debuggee or
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2578
        "/ closedown of the debugger.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2579
        [self controlLoop] ifCurtailed:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2580
            windowGroup notNil ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2581
                windowGroup setProcess:nil.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2582
            ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2583
            NumberOfDebuggers := (NumberOfDebuggers ? 1) - 1.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2584
            self destroy
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2585
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2586
        NumberOfDebuggers := (NumberOfDebuggers ? 1) - 1.
11857
e561b4e978d0 Answer IsDebuggingQuery (with true).
Stefan Vogel <sv@exept.de>
parents: 11837
diff changeset
  2587
    ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  2588
    "/ here after my own control loop is finished.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  2589
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2590
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2591
    "/ This is required to avoid keeping references to the debuggees objects
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2592
    "/ forever. (since the debugger is reused for faster startup next time)
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  2593
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  2594
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2595
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  2596
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2597
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  2598
    ObjectMemory stepInterruptHandler == self ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2599
        ObjectMemory stepInterruptHandler:nil.
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  2600
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  2601
11911
aa49a8d724b8 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11898
diff changeset
  2602
    lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
aa49a8d724b8 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11898
diff changeset
  2603
    lastSelectionInContextInspector := contextInspector selectedKeyName.
aa49a8d724b8 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11898
diff changeset
  2604
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2605
    (exitAction ~~ #step) ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2606
        "/ not stepping or continue - close window
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2607
        self cacheMyself.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2608
        receiverInspector release.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2609
        contextInspector release.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2610
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2611
        self unmap.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2612
        self flush.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2613
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2614
        (exitAction == #abort) ifTrue:[ self exit_abort. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2615
        (exitAction == #abortAll) ifTrue:[ self exit_abortAll. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2616
        (exitAction == #return) ifTrue:[ self exit_return. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2617
        (exitAction == #restart) ifTrue:[ self exit_restart. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2618
        (exitAction == #resend) ifTrue:[ self exit_resend. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2619
        (exitAction == #quickTerminate) ifTrue:[ self exit_quickTerminate. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2620
        (exitAction == #terminate) ifTrue:[ self exit_terminate. "does not return" ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2621
        exitAction isBlock ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2622
            self exit_unwindThenDo:exitAction.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2623
            "does not return"
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2624
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2625
        "not reached"
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2626
        ^ self
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2627
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2628
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2629
    "/ stepping - window stays open
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  2630
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2631
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  2632
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2633
    grabber notNil ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  2634
        device grabPointerInView:grabber.
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2635
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  2636
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2637
17980
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  2638
    "/ Processor activeProcess priorityRange:nil; priority:8.
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  2639
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2640
    (exitAction == #step) ifTrue:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2641
        "
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2642
         schedule another stepInterrupt
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2643
         - must enter myself into the collection of open debuggers,
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2644
           in case the stepping process comes back again via a halt or signal
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2645
           before the step is finished. In this case, the stepping debugger should
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2646
           come up (instead of a new one)
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2647
         - must flush caches since optimized methods not always
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2648
           look for pending interrupts
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2649
        "
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2650
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2651
        OpenDebuggers isNil ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2652
            OpenDebuggers := WeakIdentitySet new.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2653
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2654
        OpenDebuggers add:self.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2655
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2656
        self label:'single stepping - please wait ...'.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2657
        stepping := true.
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2658
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2659
        (self redefinedEnableStepInterruptForReentry:aContext) ifFalse:[
18567
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2660
            "/
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2661
            "/ also must care for stepping into a return
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2662
            "/
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2663
            steppedContext notNil ifTrue:[
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2664
                Processor activeProcess forceInterruptOnReturnOf:steppedContext.
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2665
            ].
dfa61fa513c1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18566
diff changeset
  2666
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2667
            ObjectMemory stepInterruptHandler:self.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2668
            Processor activeProcess stepInterruptHandler:self.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2669
            ObjectMemory flushCaches.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2670
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2671
            Context singleStepInterruptRequest isHandled ifTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2672
                Context singleStepInterruptRequest
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2673
                    raiseWith:
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2674
                        (("bigStep" steppedContextLineno notNil)
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2675
                            ifTrue:[#next]
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2676
                            ifFalse:[#step])
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2677
            ] ifFalse:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2678
                "/ see if we came here through an interrupt-action
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2679
                "/ (i.e. aProcess interruptWith:...)
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2680
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2681
                enteredByInterrupt := false.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2682
                con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2683
                [enteredByInterrupt not
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2684
                 and:[con notNil
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2685
                 and:[con ~~ aContext]]] whileTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2686
                    ((sel := con selector) == #timerInterrupt
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2687
                    or:[sel == #ioInterrupt]) ifTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2688
                        enteredByInterrupt := true.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2689
                    ] ifFalse:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2690
                        con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2691
                    ].
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2692
                ].
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2693
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2694
                ObjectMemory flushInlineCaches.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2695
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2696
                DebuggingDebugger == true ifTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2697
                    enteredByInterrupt printCR.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2698
                ].
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2699
                enteredByInterrupt ifTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2700
                    "/ don't want to step through all intermediate
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2701
                    "/ (scheduler-) contexts; place a return-trap on the
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2702
                    "/ one right below the interesting one
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2703
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2704
                    "/ 'special unwind return' printCR.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2705
                    con unwindThenDo:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2706
                                      Processor activeProcess stepInterruptHandler:self.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2707
                                      ObjectMemory stepInterruptHandler:self.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2708
                                      InStepInterrupt := nil.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2709
                                      StepInterruptPending := 1.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2710
                                      InterruptPending := 1].
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2711
                ] ifFalse:[
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2712
                    "/ 'normal step return' printCR.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2713
                    skipLineNr ~~ #return ifTrue:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2714
                        StepInterruptPending := 1.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2715
                        InterruptPending := 1.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2716
                    ] ifFalse:[
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2717
                        "/ 'step for return' printCR.
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2718
                    ]
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2719
                ].
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2720
                InStepInterrupt := nil
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  2721
            ]
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2722
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2723
    ] ifFalse:[
16058
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2724
        OpenDebuggers notNil ifTrue:[
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2725
            OpenDebuggers remove:self ifAbsent:[].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2726
        ].
d07dc4e285bc #FEATURE
Claus Gittinger <cg@exept.de>
parents: 15960
diff changeset
  2727
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2728
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  2729
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  2730
    "Created: / 30-10-1997 / 21:08:18 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  2731
    "Modified: / 13-10-1998 / 19:56:59 / ps"
11697
e776722de7b5 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11696
diff changeset
  2732
    "Modified: / 27-07-2012 / 17:35:56 / cg"
17978
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
  2733
    "Modified: / 01-02-2018 / 10:08:28 / stefan"
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  2734
    "Modified: / 01-02-2019 / 15:45:07 / Claus Gittinger"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2735
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2736
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2737
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2738
    "/ cannot simply raise an abort here, because if there is an abortHandler somewhere,
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2739
    "/ that one would run on top of this context.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2740
    "/ Therefore, any controlInterrupt(i.e. halt) or reentering of the debugger from that handler
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2741
    "/ would be interpreted as a recursive invocation (in #enter:select).
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2742
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2743
    "/ done in the #enter:select method.
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2744
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  2745
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2746
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2747
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2748
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2749
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2750
    "/ cannot simply raise an abort here, because if there is an abortHandler somewhere,
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2751
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2752
    "/ Therefore, any controlInterrupt(i.e. halt) or reentering of the debugger from that handler
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2753
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2754
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2755
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2756
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2757
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2758
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2759
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2760
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2761
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2762
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2763
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2764
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2765
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2766
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2767
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2768
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2769
exit_resend
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2770
    |con|
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2771
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2772
    selectedContext notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2773
        con := selectedContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2774
        self cacheMyself.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2775
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2776
         have to catch errors occuring in unwind-blocks
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2777
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2778
        Error handle:[:ex |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2779
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2780
            ex description infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2781
            ex proceed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2782
        ] do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2783
            ^ con unwindThenResend.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2784
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2785
        'DebugView [warning]: cannot resend selected context''s message' errorPrintCR
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2786
    ]
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2787
!
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  2788
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2789
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2790
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2791
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2792
    selectedContext notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2793
        con := selectedContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2794
        self cacheMyself.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2795
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2796
         have to catch errors occuring in unwind-blocks
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2797
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2798
        Error handle:[:ex |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2799
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2800
            ex description infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2801
            ex proceed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2802
        ] do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2803
            con unwindAndRestart.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2804
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2805
        'DebugView [warning]: cannot restart selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2806
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2807
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  2808
    "Created: / 16-11-2001 / 17:23:17 / cg"
11819
0829ba326853 changed: #exit_restart
Claus Gittinger <cg@exept.de>
parents: 11818
diff changeset
  2809
    "Modified: / 26-09-2012 / 15:09:52 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2810
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2811
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2812
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2813
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2814
14902
8839c1bf35fb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14880
diff changeset
  2815
    retVal := nil.
8839c1bf35fb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14880
diff changeset
  2816
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2817
    selectedContext notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2818
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2819
         if there is a selection in the codeView,
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2820
         evaluate it and use the result as return value
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2821
        "
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2822
"/ disabled for now, there is almost always a selection (the current line)
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2823
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2824
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2825
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2826
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2827
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2828
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2829
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2830
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2831
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2832
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2833
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2834
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2835
"/                        retVal := codeView doItAction value:s.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2836
"/                    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2837
"/                ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2838
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2839
        con := selectedContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2840
        self cacheMyself.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2841
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2842
         have to catch errors occuring in unwind-blocks
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2843
        "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2844
        Error handle:[:ex |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2845
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2846
            ex description infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2847
            ex proceed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2848
        ] do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2849
            con unwind:retVal.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2850
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2851
        'DebugView [warning]: cannot return from selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2852
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2853
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2854
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2855
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2856
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2857
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2858
exit_terminate
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2859
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2860
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2861
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2862
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2863
    Error handle:[:ex |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2864
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2865
        ex description infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2866
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2867
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2868
        self cacheMyself.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2869
        Processor activeProcess terminate.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2870
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2871
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2872
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2873
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2874
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2875
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2876
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2877
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2878
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2879
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2880
    "/ cannot simply raise an abort here, because if there is an abortHandler somewhere,
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2881
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2882
    "/ Therefore, any controlInterrupt(i.e. halt) or reentering of the debugger from that handler
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2883
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2884
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2885
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2886
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2887
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2888
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2889
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2890
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2891
    self cacheMyself.
12743
43616af3d027 class: DebugView
Stefan Vogel <sv@exept.de>
parents: 12716
diff changeset
  2892
    con := thisContext sender.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2893
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2894
    Error handle:[:ex |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2895
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2896
        ex description infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2897
        ex proceed
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2898
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2899
        "/ find the enter:select context.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2900
        [(con selector ~~ #enter:select:) or:[con receiver ~~ self]] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2901
            con := con sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2902
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2903
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2904
        "/ must skip over its caller (because this one has a ControlInterrupt handler too)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2905
        con sender receiver == self class ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2906
            con := con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2907
            con sender receiver == self class ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2908
                con := con sender methodHome.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2909
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2910
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2911
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  2912
        con unwindThenDo:aBlock.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2913
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2914
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2915
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2916
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2917
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2918
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2919
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2920
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2921
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2922
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2923
    initialSelectionOrNil notNil ifTrue:[
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2924
        ^ initialSelectionOrNil
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2925
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2926
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2927
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2928
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2929
     - if we came here by a send (single step), its the top context;
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2930
     - if we came here by a step (i.e. bigStep), its the top context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2931
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2932
     - otherwise, we came here by some signal raise, and we are interested
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2933
       in the context where the raise actually occurred.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2934
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2935
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2936
    con2 := (contextArray at:2 ifAbsent:nil).
12039
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2937
"/ Transcript show:'x '; showCR:exitAction.
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2938
23a6414c2eef class: DebugView
Claus Gittinger <cg@exept.de>
parents: 11943
diff changeset
  2939
    "/ came here via a step?
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2940
    exitAction == #step ifTrue:[
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2941
        selection := 1.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2942
        steppedContext notNil ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2943
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2944
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2945
             if we came here by a big-step, show the method where we are
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2946
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2947
            con1 == steppedContext ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2948
                selection := 1
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2949
            ] ifFalse:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2950
                con2 == steppedContext ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2951
                    selection := 2
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2952
                ]
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2953
            ].
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2954
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2955
             for bigStep, we could also be in a block below the actual method ...
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2956
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2957
            ((h := con1 home) notNil
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2958
             and:[h == steppedContext]) ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2959
                selection := 1
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2960
            ] ifFalse:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2961
                (con2 notNil
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2962
                and:[(h := con2 home) notNil
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2963
                and:[h == steppedContext]]) ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2964
                    selection := 2
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2965
                ]
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2966
            ].
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2967
            h := nil.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2968
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2969
    ] ifFalse:[
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2970
        steppedContext isNil ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2971
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2972
             preselect a more interesting context, (where halt/raise was ...)
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2973
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2974
            "/ selection := self class interestingContextIndexFrom:aContext.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2975
            selection := self class interestingContextIndexIn:contextArray.
17862
3a58595066ef #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17860
diff changeset
  2976
            "/ Transcript show:'x '; showCR:selection.
16801
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2977
            selection := selection min:(contextArray size).
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2978
        ] ifFalse:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2979
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2980
             if we came here by a big-step, show the method where we are
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2981
            "
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2982
            con1 == steppedContext ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2983
                selection := 1
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2984
            ] ifFalse:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2985
                con2 == steppedContext ifTrue:[
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2986
                    selection := 2.
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2987
                ]
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2988
            ]
dd3b6d987482 #OTHER by mawalch
mawalch
parents: 16800
diff changeset
  2989
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2990
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2991
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2992
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2993
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2994
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2995
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2996
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2997
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2998
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2999
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  3000
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  3001
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  3002
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  3003
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  3004
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3005
openOn:aProcess
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3006
    "enter the debugger on a process -
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3007
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3008
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3009
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3010
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3011
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3012
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3013
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  3014
    self initializeVerboseBacktraceHolder.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  3015
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3016
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3017
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3018
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3019
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3020
    inspectedProcess := aProcess.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  3021
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3022
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3023
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3024
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3025
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3026
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3027
    continueButton label:(resources string:'Continue').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  3028
    w := continueButton preferredWidth.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3029
    continueButton label:(resources string:'Stop').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  3030
    w := w max:(continueButton preferredWidth).
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  3031
    continueButton preferredExtent:(w @ continueButton preferredHeight).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3032
18791
d4648fa1cc9c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18786
diff changeset
  3033
    aProcess isRunning ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3034
        device hasColors ifTrue:[
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  3035
            continueButton foregroundColor:Color darkRed.
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3036
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3037
        continueButton label:(resources string:'Stop').
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3038
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3039
    ] ifFalse:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3040
        device hasColors ifTrue:[
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  3041
            continueButton foregroundColor:Color darkGreen darkened.
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3042
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3043
        continueButton label:(resources string:'Continue').
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3044
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3045
    ].
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  3046
    continueButton preferredExtent:(w @ continueButton preferredHeight).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3047
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3048
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3049
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3050
92
claus
parents: 90
diff changeset
  3051
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3052
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  3053
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3054
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3055
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3056
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3057
    updateButton := Button
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3058
                        label:(resources string:'Update')
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3059
                        action:[self updateContext]
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3060
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3061
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3062
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3063
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3064
    monitorToggle releaseAction:[self autoUpdateOff].
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3065
    monitorToggle helpKey:#HELP_MONITOR.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3066
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3067
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3068
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3069
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3070
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3071
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3072
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3073
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3074
    stepButton disable; beInvisible.
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3075
    stepInButton disable; beInvisible.
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3076
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3077
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3078
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3079
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3080
    aProcess isNil ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3081
        terminateButton disable.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3082
        abortButton disable.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3083
        continueButton disable.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3084
        returnButton disable.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3085
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3086
    ] ifFalse:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3087
        (aProcess suspendedContext isNil
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3088
        or:[aProcess isSystemProcess]) ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3089
            terminateButton disable.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3090
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3091
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3092
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3093
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3094
        catchBlock := [
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3095
            catchBlock := nil.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3096
            contextArray := nil.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3097
            selectedContext := actualContext := firstContext := nil.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3098
            steppedContext := wrapperContext := nil.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3099
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3100
            (exitAction == #terminate) ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3101
                aProcess terminate.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3102
            ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3103
            (exitAction == #quickTerminate) ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3104
                aProcess terminateNoSignal.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3105
            ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3106
            super destroy
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3107
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3108
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3109
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  3110
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3111
    "Modified: / 20-03-1997 / 16:53:56 / cg"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3112
    "Modified: / 17-04-1997 / 13:01:57 / stefan"
18791
d4648fa1cc9c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18786
diff changeset
  3113
    "Modified: / 29-05-2019 / 01:02:34 / Claus Gittinger"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3114
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3115
18566
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3116
redefinedEnableStepInterruptForReentry:aContext
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3117
    ^ false
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3118
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3119
    "Created: / 28-01-2019 / 11:49:03 / Claus Gittinger"
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3120
!
e307e14e2913 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18557
diff changeset
  3121
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  3122
selectContextWithIndex:index
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3123
    self showSelection:index.
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3124
    contextView setSelection:index.
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3125
    index > 1 ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3126
        contextView scrollToLine:(index - 1)
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3127
    ].
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3128
!
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3129
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3130
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3131
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3132
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3133
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3134
    selection notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3135
        self selectContextWithIndex:selection
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3136
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3137
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3138
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3139
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3140
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3141
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3142
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3143
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3144
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3145
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3146
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3147
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3148
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3149
    stepButton turnOffWithoutRedraw.
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3150
    stepInButton turnOffWithoutRedraw.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3151
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3152
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3153
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3154
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3155
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3156
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3157
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3158
flyByHelpDependsOnPositionIn:aView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3159
    "subclasses where the help-text depends upon the pointer position might
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3160
     want to redefine this.
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3161
     In the codeView, we follow the token under the mouse pointer..."
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3162
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3163
    ^ aView == codeView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3164
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3165
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3166
helpTextFor:aComponent
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3167
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3168
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3169
    aComponent == codeView ifTrue:[
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3170
        |point localPoint|
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3171
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3172
        point := device pointerPosition.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  3173
        localPoint := device translatePointFromRoot:point toView:codeView.
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3174
        ((localPoint x between:0 and:codeView width)
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3175
        and:[localPoint y between:0 and:codeView height])
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3176
        ifTrue:[
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3177
            s := self helpTextFor:codeView at:localPoint.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3178
            ^ s
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3179
        ].
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3180
        ^ nil
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3181
    ].
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3182
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3183
    aComponent == terminateButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3184
        Processor activeProcess isGUIProcess ifTrue:[
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3185
            s := 'HELP_TERMINATE_GUI'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3186
        ] ifFalse:[
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3187
            Processor activeProcess isSystemProcess ifTrue:[
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3188
                s := 'HELP_TERMINATE_SYSTEMPROCESS'
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3189
            ] ifFalse:[
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3190
                s := 'HELP_TERMINATE'
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3191
            ]
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3192
        ]
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3193
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3194
    aComponent == continueButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3195
        continueButton label = (resources string:'Stop') ifTrue:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3196
            "/ s := 'Stop'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3197
            s := 'HELP_STOP'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3198
        ] ifFalse:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3199
            "/ s := 'Continue execution'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3200
            s := 'HELP_CONTINUE'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3201
        ]
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3202
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3203
    aComponent == returnButton ifTrue:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3204
        returnButton enabled ifTrue:[
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3205
            "/ s := 'Return from the selected method'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3206
            s := 'HELP_RETURN'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3207
        ] ifFalse:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3208
            "/ s := 'Return from the selected method.\Disabled, because this method was compiled with context optimization, and cannot be returned from.' withCRs
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3209
            s := 'HELP_RETURN_DISABLED'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3210
        ].
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3211
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3212
    aComponent == restartButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3213
        restartButton enabled ifTrue:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3214
            "/ s := 'Restart the selected method.\If the code was changed in the meanwhile, the original method will be executed again'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3215
            s := 'HELP_RESTART'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3216
        ] ifFalse:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3217
            "/ s := 'Restart the selected method.\Disabled, because this method was compiled with context optimization, and cannot be returned from.' withCRs
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3218
            s := 'HELP_RESTART_DISABLED'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3219
        ].
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3220
    ].
13361
7eb8692dbc1b class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13360
diff changeset
  3221
    aComponent == resendButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3222
        resendButton enabled ifTrue:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3223
            "/ s := 'Resend the selected method''s message.\If the code was changed in the meanwhile, the new method will be called with the original arguments.'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3224
            s := 'HELP_RESEND'
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3225
        ] ifFalse:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3226
            "/ s := 'Resend the selected method''s message.\Disabled, because this method was compiled with context optimization, and cannot be returned from.' withCRs
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3227
            s := 'HELP_RESEND_DISABLED'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3228
        ].
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3229
    ].
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3230
    aComponent == updateButton ifTrue:[
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3231
        "/ s := 'Update'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3232
        s := 'HELP_UPDATE'
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3233
    ].
13464
931d28c589b7 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13462
diff changeset
  3234
    aComponent == defineButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3235
        s := 'Define the missing method (as halting) and proceed into it.\A debugger will reopen there, so you can add the code then'
13464
931d28c589b7 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13462
diff changeset
  3236
    ].
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  3237
    aComponent == reportButton ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3238
        s := 'Send a defect report via eMail'
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  3239
    ].
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3240
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3241
    s := s ? (aComponent helpKey).
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3242
    s notNil ifTrue:[
15774
84b61629a062 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15757
diff changeset
  3243
        ^ resources stringWithCRs:s
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3244
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3245
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  3246
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3247
    "Modified: / 29-08-1995 / 23:38:54 / claus"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3248
    "Modified: / 04-03-1997 / 01:54:03 / cg"
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3249
    "Modified: / 28-07-2018 / 11:52:46 / Claus Gittinger"
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3250
!
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3251
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  3252
helpTextFor:aComponent at:aPointOrNil
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  3253
    |s vline line col pos interval|
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3254
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3255
    aComponent == codeView ifFalse:[^ nil].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3256
    aPointOrNil isNil ifTrue:[^ nil].
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3257
    "/ self sensor motionEventPending ifTrue:[^ nil].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3258
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  3259
    vline := codeView visibleLineOfY:aPointOrNil y.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  3260
    col := codeView colOfX:aPointOrNil x inVisibleLine:vline.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  3261
    line := codeView visibleLineToAbsoluteLine:vline.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3262
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3263
    pos := codeView characterPositionOfLine:line col:col.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3264
    interval := pos to:pos.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  3265
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3266
    self
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3267
        withNodeValueAtInterval:interval
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3268
        do:[:value :description |
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3269
            |valueClassOrSizeString valueString|
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3270
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3271
            valueClassOrSizeString := valueString := ''.
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3272
18434
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3273
            value isBridgeProxy ifTrue:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3274
                valueString := value printString
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3275
            ] ifFalse:[
18434
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3276
                "/ some heuristics as when to show the class name (a purely subjective preference)
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3277
                value isString ifTrue:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3278
                    value isText ifTrue:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3279
                        valueString := '"',(value contractTo:80),'"'.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3280
                    ] ifFalse:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3281
                        valueString := value storeString contractTo:80.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3282
                    ].
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3283
                ] ifFalse:[
18434
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3284
                    (value isBoolean
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3285
                    or:[ value isInteger
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3286
                    or:[ value isSymbol ]]) ifTrue:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3287
                        valueString := value printString.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3288
                    ] ifFalse:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3289
                        valueClassOrSizeString := ' (',value class name,')'.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3290
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3291
                        value isCollection ifTrue:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3292
                            valueClassOrSizeString := ' (size=',value size printString,')'.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3293
                        ].
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3294
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3295
                        Error handle:[:ex |
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3296
                            valueString := '??? (',ex description,')'
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3297
                        ] do:[
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3298
                            [
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3299
                                valueString := value printString contractTo:80.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3300
                            ] valueWithWatchDog:[ valueString := value class nameWithArticle ] afterMilliseconds:30.
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3301
                            "do not use classNameWithArticle - it is missing in ProtoObject!!"
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3302
                        ]
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3303
                    ]
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3304
                ]
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3305
            ].
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3306
            description isEmptyOrNil ifTrue:[
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3307
                s := valueString , valueClassOrSizeString
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3308
            ] ifFalse:[
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3309
                s := description , ': ', valueString, valueClassOrSizeString
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3310
            ].
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
  3311
        ].
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3312
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3313
    "/ if there is an infoLabelHolder, show it there    
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3314
    infoLabelHolder notNil ifTrue:[
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3315
        infoLabelHolder value:s.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3316
        ^ ''
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3317
    ].
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  3318
    ^ s
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  3319
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  3320
    "Modified: / 27-04-2010 / 17:51:53 / cg"
18434
ae82fa7f3a6c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18430
diff changeset
  3321
    "Modified: / 26-09-2018 / 14:25:46 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3322
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3323
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3324
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3325
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3326
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3327
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3328
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3329
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3330
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3331
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3332
additionalLocationInfo
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3333
    "subclasses may provide additional info for the executionInfoLabel
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3334
     (such as repreat count of an activity)"
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3335
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3336
    ^ ''
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3337
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3338
    "Created: / 20-02-2019 / 22:22:52 / Claus Gittinger"
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3339
!
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  3340
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3341
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3342
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3343
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3344
    self destroyWithConfirmation:true
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3345
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3346
    "Modified: / 10-07-1997 / 17:15:41 / stefan"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3347
    "Modified: / 23-03-2012 / 12:50:01 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3348
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3349
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3350
destroyWithConfirmation:withConfirmation
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3351
    "closing the debugger implies an abort or continue"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3352
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  3353
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  3354
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3355
    withConfirmation ifTrue:[
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3356
        self checkIfCodeIsReallyModified ifTrue:[
18323
81be140cef5a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18307
diff changeset
  3357
            self topView raiseDeiconified.
81be140cef5a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18307
diff changeset
  3358
            (self confirm:('Debugged code was modified.\\Exit anyway ?'))
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3359
            ifFalse:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3360
                ^ self
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3361
            ]
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3362
        ]
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3363
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3364
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  3365
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  3366
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  3367
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3368
    inspecting ifFalse:[
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3369
        "I am running on top of a process, abort or continue it"
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3370
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3371
        windowGroup notNil ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3372
            windowGroup setProcess:nil.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3373
        ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3374
        self uncacheMyself.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3375
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3376
        "/
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3377
        "/ catch invalid return;
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3378
        "/ this happens, when my process has somehow died (quickterminate)
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3379
        "/ and I am a leftOver view, which gets terminated via the launchers
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3380
        "/ #destroy-window function.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3381
        "/
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3382
        Context cannotReturnSignal handle:[:ex |
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3383
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3384
            self uncacheMyself.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3385
            Debugger newDebugger.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3386
            ex return.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3387
        ] do:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3388
            AbortOperationRequest isHandled ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3389
                self doAbort.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3390
            ] ifFalse:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3391
                self doContinue
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3392
            ]
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3393
        ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3394
        "/ We don't reach this point normally
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  3395
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3396
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3397
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  3398
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3399
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3400
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3401
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3402
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3403
    "Modified: / 10-07-1997 / 17:15:41 / stefan"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  3404
    "Created: / 23-03-2012 / 12:49:50 / cg"
18323
81be140cef5a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18307
diff changeset
  3405
    "Modified: / 07-08-2018 / 08:21:10 / Claus Gittinger"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3406
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  3407
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3408
initialize
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3409
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3410
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3411
    self initializeFlags.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  3412
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3413
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3414
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3415
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3416
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3417
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3418
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3419
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3420
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3421
    self initializeViews.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  3422
    DefaultDebuggerBackgroundColor notNil ifTrue:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3423
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  3424
    ].
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3425
    LastExtent notNil ifTrue:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3426
        self extent:LastExtent.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3427
    ].
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3428
    LastOrigin notNil ifTrue:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3429
        self origin:LastOrigin.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3430
    ].
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  3431
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3432
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3433
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3434
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3435
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
  3436
    "Modified: / 27-07-2012 / 14:46:07 / cg"
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3437
    "Modified: / 28-07-2018 / 11:15:15 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3438
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3439
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3440
initializeAbortButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3441
    abortButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3442
                label:(resources string:'Abort')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3443
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3444
                    abortButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3445
                    self doAbort
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3446
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3447
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3448
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3449
    abortButton name:'abortButton'; helpKey:#HELP_ABORT.
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3450
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3451
    "Created: / 17-11-2001 / 20:56:47 / cg"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3452
    "Modified: / 13-06-2018 / 09:30:04 / Claus Gittinger"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3453
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3454
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3455
initializeButtons1In:bpanel
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3456
    "creates the top button row, 
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3457
     consisting of 'continue', 'abort', 'terminate'..."
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  3458
16958
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3459
    |separator buttonWidth|
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3460
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3461
    buttonWidth := 170.
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3462
    
18307
8484d41fe5d8 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18301
diff changeset
  3463
    bpanel horizontalLayout:#leftSpace.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3464
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3465
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3466
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  3467
    self initializeContinueButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3468
    buttonWidth notNil ifTrue:[continueButton width:buttonWidth].
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  3469
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  3470
    "/ separator := View extent:(10 @ 5) in:bpanel.
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  3471
    "/ separator borderWidth:0; level:0.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3472
    self initializeAbortButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3473
    buttonWidth notNil ifTrue:[abortButton width:buttonWidth].
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  3474
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  3475
    separator := View extent:(100 @ 5) in:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3476
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3477
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3478
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3479
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  3480
    separator := View extent:(50 @ 5) in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3481
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3482
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3483
    self initializeGotoDialogOpenerButtonIn:bpanel.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3484
    self initializeGotoApplicationActionMethodButtonIn:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3485
    self initializeDefineButtonIn:bpanel.
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3486
    self initializeGotoRaisingMethodButtonIn:bpanel.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3487
    
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3488
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
16958
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3489
        separator := View extent:(10 @ 5) in:bpanel.
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3490
        separator borderWidth:0; level:0.
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3491
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3492
    ].
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3493
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3494
    "Modified: / 30-11-2017 / 12:10:13 / cg"
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3495
    "Modified: / 12-11-2018 / 09:52:04 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3496
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3497
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3498
initializeButtons2In:bpanel
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3499
    "creates the second button row, 
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3500
     consisting of 'next', 'step', 'return'..."
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  3501
16958
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3502
    |separator buttonWidth|
aad23f6aa046 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16933
diff changeset
  3503
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3504
    "/ buttonWidth := 130.
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3505
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3506
    "/ bpanel horizontalLayout:#leftSpaceMax.
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3507
    bpanel horizontalLayout:#leftSpace.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3508
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3509
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3510
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3511
    self initializeNextButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3512
    buttonWidth notNil ifTrue:[nextButton width:buttonWidth].
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  3513
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3514
    self initializeStepButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3515
    buttonWidth notNil ifTrue:[stepButton width:buttonWidth].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3516
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3517
    self initializeStepInButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3518
    buttonWidth notNil ifTrue:[stepInButton width:buttonWidth].
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3519
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3520
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3521
"/ I disabled the stepIn / stepOut buttons - for now.
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  3522
"/ they do not work reliable with inlined blocks yet.
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3523
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3524
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3525
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3526
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3527
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3528
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3529
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3530
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3531
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3532
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3533
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3534
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3535
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3536
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3537
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3538
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3539
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3540
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3541
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3542
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3543
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3544
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3545
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3546
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3547
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3548
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3549
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3550
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  3551
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3552
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3553
    self initializeSendButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3554
    buttonWidth notNil ifTrue:[sendButton width:buttonWidth].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3555
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3556
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  3557
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3558
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3559
    self initializeReturnButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3560
    buttonWidth notNil ifTrue:[returnButton width:buttonWidth].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3561
    self initializeRestartButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3562
    buttonWidth notNil ifTrue:[restartButton width:buttonWidth].
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3563
    self initializeResendButtonIn:bpanel.
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3564
    buttonWidth notNil ifTrue:[resendButton width:buttonWidth].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3565
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  3566
    "Modified: / 18-06-2010 / 08:32:05 / cg"
18524
d12348dd1014 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18520
diff changeset
  3567
    "Modified: / 12-11-2018 / 19:00:34 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3568
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3569
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3570
initializeButtonsIn:bpanel
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3571
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3572
18301
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3573
    bpanel horizontalLayout:#leftSpaceMax.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3574
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3575
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3576
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3577
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3578
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3579
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3580
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3581
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3582
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3583
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3584
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3585
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3586
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3587
    self initializeReturnButtonIn:bpanel.
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3588
    self initializeRestartButtonIn:bpanel.
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3589
    self initializeResendButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3590
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3591
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3592
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3593
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3594
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3595
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3596
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3597
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3598
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3599
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3600
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3601
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3602
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3603
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3604
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3605
"/        img := (resources at:'next')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3606
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3607
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3608
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3609
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3610
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3611
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3612
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3613
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3614
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3615
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3616
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3617
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3618
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3619
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3620
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3621
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3622
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3623
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3624
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3625
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3626
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3627
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3628
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3629
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3630
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3631
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3632
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3633
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3634
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3635
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3636
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3637
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3638
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3639
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3640
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3641
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3642
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3643
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3644
18301
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3645
    "
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3646
     Debugger newDebugger
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3647
    "
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3648
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3649
    "Created: / 17-11-2001 / 20:56:20 / cg"
4a1ce140ef70 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18300
diff changeset
  3650
    "Modified (comment): / 28-07-2018 / 11:57:04 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3651
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3652
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3653
initializeCodeViewIn:panel
13519
97e23cf8edbb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13490
diff changeset
  3654
    |scrollableCodeView|
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3655
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  3656
    (UserPreferences current useCodeView2In: #Debugger) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3657
        scrollableCodeView := codeView := Tools::CodeView2 new.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3658
        codeView model: ValueHolder new.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3659
        codeView methodHolder: ValueHolder new.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3660
        codeView classHolder: ValueHolder new.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  3661
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3662
        scrollableCodeView := HVScrollableView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3663
                    for:CodeView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3664
                    miniScrollerH:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3665
                    miniScrollerV:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3666
                    in:panel.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3667
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3668
        codeView := scrollableCodeView scrolledView.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3669
        codeView enableMotionEvents. "/ for active help
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  3670
    ].
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  3671
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3672
    UserPreferences current showAcceptCancelBarInBrowser ifTrue:[
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3673
        |wrapperView|
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3674
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3675
        (ViewWithAcceptAndCancelBar notNil 
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3676
         and:[codeView isCodeView2 not 
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3677
              or:[UserPreferences current codeView2ShowAcceptCancel not]]) ifTrue:[
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3678
            wrapperView := ViewWithAcceptAndCancelBar new.
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3679
            wrapperView slaveView:scrollableCodeView.
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3680
            wrapperView reallyModifiedHolder:(codeView isCodeView2
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3681
                                        ifTrue:[ codeView reallyModifiedChannel ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3682
                                        ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3683
                                            BlockValue
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3684
                                                with:[:m |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3685
                                                    |same|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3686
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3687
                                                    same := (codeView contentsAsString string = currentMethod source string).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3688
                                                    codeView modifiedChannel setValue:false.  "/ so it triggers again
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3689
                                                    same not.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3690
                                                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3691
                                                argument:codeView modifiedChannel
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3692
                                        ]).
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3693
            wrapperView cancelAction:
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3694
                [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3695
                    "/ codeView setClipboardText:(codeView contents).   "/ for undo
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3696
                    codeView device rememberInCopyBufferHistory:(codeView contents).  "/ for undo
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3697
                    codeView contents:(currentMethod source).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3698
                    codeView modifiedChannel setValue:false; changed.   "/ trigger
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3699
                    codeView requestFocus.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3700
                ].
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3701
            scrollableCodeView := wrapperView.
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3702
        ].
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3703
        (wrapperView notNil or:[codeView isCodeView2]) ifTrue:[
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3704
            scrollableCodeView compareAction:[
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3705
                    |diffView|
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3706
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3707
                    diffView := DiffCodeView
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3708
                            openOn:codeView contentsAsString
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3709
                            label:(resources string:'Changed definition (to be accepted ?)')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3710
                            and:currentMethod source
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3711
                            label:(resources string:'Method''s Original Code').
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3712
                    diffView label:(resources string:'Changed Code in Debugger').
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3713
                    diffView waitUntilVisible.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3714
                    "/ codeView requestFocus
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3715
                ].
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3716
        ].
13519
97e23cf8edbb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13490
diff changeset
  3717
    ].
97e23cf8edbb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13490
diff changeset
  3718
97e23cf8edbb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13490
diff changeset
  3719
    panel add:scrollableCodeView.
97e23cf8edbb class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13490
diff changeset
  3720
    ^ scrollableCodeView
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  3721
13842
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  3722
    "Modified: / 06-12-2013 / 17:30:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18066
daa0d7ed5690 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 18060
diff changeset
  3723
    "Modified: / 27-04-2018 / 17:09:39 / stefan"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3724
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3725
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3726
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3727
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3728
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3729
    v := HVScrollableView
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3730
                for:SelectionInListView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3731
                miniScrollerH:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3732
                miniScrollerV:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3733
                in:panel.
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  3734
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3735
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3736
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3737
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3738
    contextView doubleClickAction:[:line | self browseImplementingClass].
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  3739
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3740
18601
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  3741
    self initializeContextViewsMiddleButtonMenu.
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  3742
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3743
    ^ v
18601
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  3744
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  3745
    "Modified: / 18-02-2019 / 18:48:41 / Claus Gittinger"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3746
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3747
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  3748
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  3749
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  3750
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3751
    contextView middleButtonMenu:(self middleButtonMenu).
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3752
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3753
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3754
initializeContinueButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3755
    continueButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3756
                label:(resources string:'Continue')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3757
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3758
                    continueButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3759
                    self doContinue
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3760
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3761
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3762
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3763
    continueButton name:'continueButton'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3764
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3765
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3766
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3767
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3768
initializeDefineButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3769
    defineButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3770
                label:(resources string:'Define')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3771
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3772
                    defineButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3773
                    self doDefine
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3774
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3775
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3776
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3777
    defineButton name:'defineButton'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3778
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3779
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3780
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3781
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3782
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3783
initializeFlags
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3784
    |userPrefs|
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3785
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3786
    userPrefs := UserPreferences current.
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  3787
    self initializeVerboseBacktraceHolder.
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3788
    hideSupportCode := userPrefs hideSupportCodeInDebugger ? false.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3789
    ignoreBreakpoints := true.    "/ ignore halts/breakpoints in doIts of
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3790
                                  "/ the debugger
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  3791
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  3792
    "Modified: / 01-02-2019 / 15:45:26 / Claus Gittinger"
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3793
!
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  3794
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3795
initializeGotoApplicationActionMethodButtonIn:bpanel
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3796
    gotoApplicationActionMethodButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3797
                label:(resources string:'Goto Responsible Application Method')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3798
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3799
                    gotoApplicationActionMethodButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3800
                    self doGotoApplicationActionMethod
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3801
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3802
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3803
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3804
    gotoApplicationActionMethodButton name:'gotoAppMethodButton'; helpKey:#HELP_GOTO_APPLICATION_ACTION.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3805
    gotoApplicationActionMethodButton beInvisible
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3806
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3807
    "Modified: / 13-06-2018 / 11:14:32 / Claus Gittinger"
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3808
!
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  3809
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3810
initializeGotoDialogOpenerButtonIn:bpanel
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3811
    gotoDialogOpenerButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3812
                label:(resources string:'Goto Dialog Opener')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3813
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3814
                    gotoDialogOpenerButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3815
                    self doGotoDialogOpener
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3816
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3817
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3818
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3819
    gotoDialogOpenerButton name:'gotoDialogOpenerButton'; helpKey:#HELP_GOTO_DIALOG_OPENER.
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3820
    gotoDialogOpenerButton beInvisible
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3821
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3822
    "Modified: / 13-06-2018 / 11:14:02 / Claus Gittinger"
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3823
!
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  3824
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3825
initializeGotoRaisingMethodButtonIn:bpanel
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3826
    gotoRaisingMethodButton := Button
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3827
                label:(resources string:'Goto Raising Method')
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3828
                action:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3829
                    gotoRaisingMethodButton turnOffWithoutRedraw.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3830
                    self doGotoRaisingMethod
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3831
                ]
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3832
                in:bpanel.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3833
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3834
    gotoRaisingMethodButton name:'gotoRaisingMethodButton'.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3835
    gotoRaisingMethodButton beInvisible
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3836
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3837
    "Created: / 30-11-2017 / 12:09:54 / cg"
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3838
!
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  3839
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3840
initializeInfoPanelIn:aView
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3841
    |infoPanel infoLabel|
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3842
    
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3843
    infoPanel := HorizontalPanelView in:aView.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3844
    infoPanel geometryLayout:(LayoutFrame
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3845
                            leftFraction:0.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3846
                            rightFraction:1.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3847
                            topFraction:1.0 offset:-25
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3848
                            bottomFraction:1.0 offset:0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3849
    infoLabel := Label in:infoPanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3850
    infoLabel geometryLayout:(LayoutFrame
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3851
                            leftFraction:0.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3852
                            rightFraction:1.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3853
                            topFraction:0.0 offset:0
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3854
                            bottomFraction:1.0 offset:0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3855
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3856
    infoLabel adjust:#left.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3857
    infoLabel labelChannel:(infoLabelHolder := '' asValue).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3858
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3859
    "
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3860
     Debugger newDebugger.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3861
     self halt.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3862
    "
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3863
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3864
    "Created: / 28-07-2018 / 11:23:41 / Claus Gittinger"
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3865
!
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  3866
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3867
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3868
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3869
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3870
    hpanel := VariableHorizontalPanel in:panel.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3871
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3872
    receiverInspector := (self inspectorViewClassForReceiver)
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3873
                                origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3874
                                    in:hpanel.
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3875
    receiverInspector fieldListLabel:(resources string:'Receiver').
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3876
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3877
    contextInspector := (self inspectorViewClassForContext)
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3878
                                origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  3879
                                    in:hpanel.
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3880
    contextInspector fieldListLabel:(resources string:'Context').
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  3881
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3882
    ^ hpanel
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3883
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  3884
    "Modified: / 28-05-2019 / 18:29:30 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3885
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3886
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3887
initializeNextButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3888
    nextButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3889
                label:(resources string:'Debug_Next')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3890
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3891
                    stepButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3892
                    self doNext
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3893
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3894
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3895
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3896
    nextButton name:'nextButton'; helpKey:#HELP_NEXT.
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3897
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3898
    "Created: / 17-11-2001 / 20:59:38 / cg"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3899
    "Modified: / 13-06-2018 / 09:31:25 / Claus Gittinger"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3900
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3901
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3902
initializeReportButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3903
    reportButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3904
                label:(resources string:'Report by Mail...')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3905
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3906
                    reportButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3907
                    self doOpenReportMailApp.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3908
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3909
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3910
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3911
    reportButton name:'reportButton'.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3912
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3913
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3914
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3915
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3916
initializeResendButtonIn:bpanel
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3917
    resendButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3918
                label:(resources string:'Resend')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3919
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3920
                    resendButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3921
                    self doResend
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3922
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3923
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3924
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3925
    resendButton name:'resendButton'.
13490
5dbbc9379782 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13489
diff changeset
  3926
5dbbc9379782 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13489
diff changeset
  3927
    "/ if we have this, we do not need the restart button
5dbbc9379782 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13489
diff changeset
  3928
    restartButton beInvisible.
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3929
!
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  3930
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3931
initializeRestartButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3932
    restartButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3933
                label:(resources string:'Restart')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3934
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3935
                    restartButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3936
                    self doRestart
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3937
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3938
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3939
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3940
    restartButton name:'restartButton'
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3941
    
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3942
    "Created: / 17.11.2001 / 20:58:52 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3943
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3944
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3945
initializeReturnButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3946
    returnButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3947
                label:(resources string:'Return')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3948
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3949
                    returnButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3950
                    self doReturn
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3951
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3952
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3953
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3954
    returnButton name:'returnButton'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3955
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3956
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3957
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3958
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3959
initializeSendButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3960
    sendButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3961
                label:(resources string:'Send')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3962
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3963
                    sendButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3964
                    self doSend
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3965
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3966
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3967
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3968
    sendButton name:'sendButton'; helpKey:#HELP_SEND.
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3969
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3970
    "Created: / 17-11-2001 / 21:01:20 / cg"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3971
    "Modified: / 13-06-2018 / 11:10:28 / Claus Gittinger"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3972
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3973
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3974
initializeStepButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3975
    stepButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3976
                label:(resources string:'Debug_Step')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3977
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3978
                    stepButton turnOff.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3979
                    self doStep
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3980
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3981
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  3982
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3983
    stepButton name:'stepButton'; helpKey:#HELP_STEP.
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3984
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3985
    "Created: / 17-11-2001 / 21:00:13 / cg"
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3986
    "Modified: / 13-06-2018 / 09:30:57 / Claus Gittinger"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3987
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3988
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3989
initializeStepInButtonIn:bpanel
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3990
    stepInButton := Button
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3991
                label:(resources string:'Debug_StepIn')
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3992
                action:[
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3993
                    stepInButton turnOff.
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3994
                    self doStepIn
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3995
                ]
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3996
                in:bpanel.
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3997
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  3998
    stepInButton name:'stepInButton'; helpKey:#HELP_STEPIN.
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  3999
18158
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  4000
    "Created: / 17-11-2001 / 21:00:13 / cg"
18205
527c961bdc68 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18181
diff changeset
  4001
    "Modified: / 13-06-2018 / 09:31:11 / Claus Gittinger"
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  4002
!
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  4003
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4004
initializeTerminateButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4005
    terminateButton := Button
16134
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4006
                label:(resources string:'Debug_Terminate')
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4007
                action:[
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4008
                    terminateButton turnOffWithoutRedraw.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4009
                    self doTerminate
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4010
                ]
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4011
                in:bpanel.
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4012
dcd6ff036dcd #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16072
diff changeset
  4013
    terminateButton name:'terminateButton'.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  4014
    terminateButton backgroundColor:Color red lightened.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  4015
    "/ terminateButton foregroundColor:Color red.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  4016
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4017
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4018
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4019
18574
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4020
initializeVerboseBacktraceHolder
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4021
    self verboseBacktraceHolder value:(UserPreferences current verboseBacktraceInDebugger).
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4022
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4023
    "Created: / 01-02-2019 / 15:44:52 / Claus Gittinger"
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4024
!
d2d31ff5fdee #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18572
diff changeset
  4025
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4026
initializeViews
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4027
    |menu menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4028
     newLayout v exceptionAndTogglePanel codeToggleLabels|
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4029
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4030
    mH := 0.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4031
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4032
    menuPanel := MenuPanel in:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4033
    menuPanel receiver:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4034
    menuPanel verticalLayout:false.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4035
    menu := self class menuSpec decodeAsLiteralArray.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4036
    menu findGuiResourcesIn:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4037
    menuPanel menu:menu.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4038
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4039
    mH := menuPanel preferredHeight.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4040
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4041
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4042
    newLayout := UserPreferences current useNewLayoutInDebugger.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4043
    newLayout ifFalse:[
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4044
        bpanel := HorizontalPanelView in:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4045
        self initializeButtonsIn:bpanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4046
        bH := bpanel preferredHeight + 5.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4047
        bpanel origin:(0.0 @ mH) extent:(1.0 @ bH).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4048
               
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4049
        self initializeInfoPanelIn:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4050
        
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4051
        panel := VariableVerticalPanel in:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4052
        "/ panel origin:(0.0 @ (mH + bH)) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4053
        panel geometryLayout:(LayoutFrame
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4054
                                leftFraction:0.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4055
                                rightFraction:1.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4056
                                topFraction:0 offset:(mH + bH)
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4057
                                bottomFraction:1.0 offset:-25).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4058
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4059
        v := self initializeContextListViewIn:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4060
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4061
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4062
        codePanel := View in:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4063
        v := self initializeCodeViewIn:codePanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4064
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4065
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4066
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4067
        v := self initializeInspectorViewsIn:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4068
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4069
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4070
    ] ifTrue:[
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4071
        self initializeInfoPanelIn:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4072
        
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4073
        bpanel1 := HorizontalPanelView in:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4074
        self initializeButtons1In:bpanel1.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4075
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4076
        contextInfoLabel := Label label:''.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4077
        contextInfoLabel adjust:#left.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4078
        bpanel1 add:contextInfoLabel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4079
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4080
        bH1 := bpanel1 preferredHeight + 5.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4081
        bpanel1 origin:(0.0 @ mH) extent:(1.0 @ bH1).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4082
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4083
        panel := VariableVerticalPanel in:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4084
        "/ panel origin:(0.0 @ (mH + bH1)) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4085
        panel geometryLayout:(LayoutFrame
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4086
                                leftFraction:0.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4087
                                rightFraction:1.0 offset:0 
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4088
                                topFraction:0 offset:(mH + bH1)
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4089
                                bottomFraction:1.0 offset:-25).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4090
                                
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4091
        "/ panel showHandle:true.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4092
        "/ panel handlePosition:#left.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4093
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4094
        v := self initializeContextListViewIn:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4095
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4096
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4097
        codePanel := View in:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4098
        bpanel2 := HorizontalPanelView in:codePanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4099
        self initializeButtons2In:bpanel2.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4100
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4101
        bH2 := bpanel2 preferredHeight + 5.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4102
        bpanel2 origin:(0.0 @ 0.0) extent:(1.0 @ bH2).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4103
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4104
        exceptionInfoLabel := Label label:''.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4105
        exceptionInfoLabel adjust:#left.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4106
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4107
        exceptionAndTogglePanel := HorizontalPanelView in:codePanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4108
        exceptionAndTogglePanel horizontalLayout:#left.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4109
        exceptionAndTogglePanel
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4110
            geometryLayout:
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4111
                ((LayoutFrame
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4112
                    origin:(0.0 @ 0.0)
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4113
                    corner:(1.0 @ 0.0))
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4114
                        topOffset:bH2;
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4115
                        bottomOffset:(bH2 + exceptionInfoLabel preferredHeight + 6);
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4116
                        rightOffset:-2).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4117
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4118
        methodCodeToggleSelectionHolder := 1 asValue.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4119
        methodCodeToggleSelectionHolder onChangeSend:#methodCodeToggleChanged to:self.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4120
        codeToggleLabels := resources array:{
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4121
                    'Showing Original Code (being executed, but obsolete)' asText backgroundColorizeAllWith:Color red lightened .
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4122
                    'Showing Current Code'                                 asText backgroundColorizeAllWith:Color green lightened .
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4123
                  }.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4124
        methodCodeToggle := PopUpList label:codeToggleLabels first in:exceptionAndTogglePanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4125
        methodCodeToggle list:codeToggleLabels.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4126
        methodCodeToggle useIndex:true.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4127
        methodCodeToggle model:methodCodeToggleSelectionHolder.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4128
        methodCodeToggle beInvisible.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4129
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4130
        exceptionAndTogglePanel add:exceptionInfoLabel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4131
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4132
        v := self initializeCodeViewIn:codePanel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4133
        v origin:(0.0 @ (bH2+exceptionInfoLabel preferredHeight+6)) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4134
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4135
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4136
        v := self initializeInspectorViewsIn:panel.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4137
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4138
    ].
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4139
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4140
    "
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4141
     Debugger newDebugger
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4142
    "
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4143
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4144
    "Created: / 28-07-2018 / 11:14:52 / Claus Gittinger"
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4145
!
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  4146
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4147
inspectorViewClassForContext
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4148
    ^ ContextInspectorView
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4149
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4150
    "Created: / 28-05-2019 / 18:28:28 / Claus Gittinger"
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4151
!
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4152
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4153
inspectorViewClassForReceiver
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4154
    ^ InspectorView
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4155
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4156
    "Created: / 28-05-2019 / 18:28:16 / Claus Gittinger"
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4157
!
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4158
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4159
inspectorViewClassForStack
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4160
    ^ InspectorView
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4161
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4162
    "Created: / 28-05-2019 / 18:30:08 / Claus Gittinger"
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4163
!
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  4164
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  4165
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  4166
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4167
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4168
    inspecting ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4169
        inspectedProcess notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4170
            "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4171
             set prio somewhat higher (by 2, to allow walkBack-update process
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4172
             to run between mine and the debugged processes prio)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4173
            "
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4174
            Processor activeProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4175
                priority:(((inspectedProcess priority + 2) min:(Processor highIOPriority)) max:(Processor userSchedulingPriority+1)).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4176
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4177
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4178
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4179
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  4180
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  4181
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4182
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4183
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4184
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4185
    "/ redefined - since the debugView runs on top of
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4186
    "/ the debuggee, there would be no event loop for me.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4187
13965
6213444511ae class: DebugView
Stefan Vogel <sv@exept.de>
parents: 13934
diff changeset
  4188
    self drawableId notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4189
        ^ self
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4190
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4191
    "physically create the view & subviews"
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4192
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4193
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  4194
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4195
releaseDebuggee
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4196
    "We have to be careful to release all refs to the debuggee,
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4197
     because we may be in the cache.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4198
     Otherwise, the GC will not be able to release it"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4199
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4200
    busy := false.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4201
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4202
    codeView acceptAction:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4203
    codeView doItAction:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4204
    codeView contents:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4205
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4206
    receiverInspector release.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4207
    contextInspector release.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4208
    inspectedProcess := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4209
    contextArray := nil.
13361
7eb8692dbc1b class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13360
diff changeset
  4210
    ((exitAction == #restart) or:[exitAction == #return or:[exitAction == #resend]]) ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4211
        selectedContext := nil.
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4212
    ].
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4213
    actualContext := firstContext := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4214
    steppedContext := wrapperContext := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4215
    catchBlock := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4216
    grabber := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4217
    self autoUpdateOff.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4218
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4219
    "Created: / 10-07-1997 / 14:57:51 / stefan"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4220
    "Modified: / 26-09-2012 / 15:08:21 / cg"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4221
!
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  4222
17566
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4223
setLabelFor:errorDescriptionMessage in:aProcess
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4224
    self setLabelFor:errorDescriptionMessage in:aProcess orElseInLocation:''
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4225
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4226
    "Modified: / 03-12-2017 / 15:09:55 / cg"
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4227
    "Modified: / 18-02-2019 / 12:02:42 / Claus Gittinger"
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4228
!
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4229
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4230
setLabelFor:errorDescriptionMessage in:aProcessOrNil orElseInLocation:aLocationString
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4231
    "set the window-title and the exceptionInfo label's string"
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4232
    
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4233
    |l lines processNameOrNil pidOrNil osPidString colorUsed messageLine|
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4234
17566
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4235
    lines := errorDescriptionMessage asStringCollection.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4236
    lines size > 1 ifTrue:[
16501
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  4237
        l := lines first
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4238
    ] ifFalse:[
17566
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4239
        l := errorDescriptionMessage.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4240
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4241
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4242
    aProcessOrNil notNil ifTrue:[
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4243
        l := l , ' ('.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4244
        Error handle:[:ex |
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4245
            l := l , '???'
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4246
        ] do:[        
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4247
            processNameOrNil := aProcessOrNil name.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4248
            processNameOrNil notNil ifTrue:[
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4249
                l := l , (processNameOrNil contractTo:20) , ''.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4250
            ].
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4251
            pidOrNil := aProcessOrNil id printString.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4252
            l := l , '[' , pidOrNil , ']'.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4253
        ].
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4254
        l := l , ')'.
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4255
    ].    
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4256
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  4257
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4258
    ((ShowThreadID == true) and:[OperatingSystem isMSDOSlike]) ifTrue:[
16501
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  4259
        osPidString := ' {threadID: ',OperatingSystem getThreadId printString,'}'.
9403
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  4260
    ].
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  4261
8305
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  4262
    exceptionInfoLabel notNil ifTrue:[
17834
502804e4188b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17822
diff changeset
  4263
        colorUsed := (isStoppedAtHaltOrBreakPoint == true) 
16984
2333af91763e #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16961
diff changeset
  4264
                        ifTrue:[ Color orange ]
2333af91763e #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16961
diff changeset
  4265
                        ifFalse:[ Color red ].
16985
ce79de6db243 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16984
diff changeset
  4266
        colorUsed := colorUsed contrastingColorFor:exceptionInfoLabel backgroundColor.                
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4267
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4268
        messageLine := lines first.
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4269
        processNameOrNil notNil ifTrue:[
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4270
            exceptionInfoLabel
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4271
                label:(resources
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4272
                        string:'%1 in process %2 [%3]%4'
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4273
                        with:(messageLine withColor:colorUsed)
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4274
                        with:(processNameOrNil ? '')
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4275
                        with:(pidOrNil ? '')
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4276
                        with:(osPidString ? '')).
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4277
        ] ifFalse:[
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4278
            (messageLine includesString:aLocationString) ifTrue:[
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4279
                exceptionInfoLabel
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4280
                    label:(resources
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4281
                            string:'%1%2'
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4282
                            with:(messageLine withColor:colorUsed)
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4283
                            with:(self additionalLocationInfo)).
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4284
            ] ifFalse:[
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4285
                exceptionInfoLabel
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4286
                    label:(resources
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4287
                            string:'%1 in %2%3%4'
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4288
                            with:(messageLine withColor:colorUsed)
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4289
                            with:aLocationString
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4290
                            with:(self additionalLocationInfo)
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4291
                            with:(osPidString ? '')).
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4292
            ].
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4293
        ].
16984
2333af91763e #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16961
diff changeset
  4294
        
17566
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4295
        exceptionInfoLabel 
17880
3e7765391a3c #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17862
diff changeset
  4296
            helpText:(((resources stringWithCRs:'Error description:\') withColor:Color gray)
17566
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4297
                          ,(lines asStringWith:Character cr)).
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4298
    ].
7871bff67791 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17547
diff changeset
  4299
18598
eaed5dce5c8d #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18593
diff changeset
  4300
    "Created: / 18-02-2019 / 12:02:11 / Claus Gittinger"
18605
bb64165d8742 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18601
diff changeset
  4301
    "Modified: / 20-02-2019 / 22:25:11 / Claus Gittinger"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4302
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4303
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4304
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4305
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4306
contextInterrupt
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4307
    DebuggingDebugger == true ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4308
        'contextIRQ' printCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4309
        thisContext methodHome sender fullPrint.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4310
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  4311
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4312
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4313
    "Modified: / 30.10.1997 / 21:22:25 / cg"
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4314
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4315
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4316
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4317
    DebuggingDebugger == true ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4318
        'stepIRQ' print.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4319
        "/ ' in ' print. thisContext sender fullPrint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  4320
        '' printCR.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4321
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4322
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  4323
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4324
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4325
    "Modified: / 20-07-2012 / 14:06:54 / cg"
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4326
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4327
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4328
stepOrNext
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  4329
    |where here con s isWrap method wrappedMethod
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4330
     originalMethodOfWrappedMethod originalMethodsContext
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4331
     inBlock subBlockLeft ignore contextBelow wrapContext
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4332
     leftWrap enteredWrap anyStepBlocks
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4333
     oneMore initiallyShown inBlockBelow receiver processName
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4334
     inBreakPointHandlingCode bpntReceiver|
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4335
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  4336
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  4337
    "/ DebuggingDebugger := false
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4338
    "/ DebuggingDebugger2 := true
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4339
    "/ DebuggingDebugger2 := false
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4340
    "/ DebuggingDebugger3 := false
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4341
    "/ '' printCR
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  4342
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  4343
    processName := (Processor activeProcess nameOrId),' [',Processor activeProcess id printString,']'.
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  4344
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4345
    skipLineNr == #return ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4346
        self label:('stepping context returned ' , ' (process: ' , processName , ')').
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4347
        here := thisContext sender sender.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4348
        here setLineNumber:nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4349
        here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4350
        con := thisContext sender sender sender.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4351
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4352
        HaltInterrupt handle:[:ex |
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4353
            ('DebugView [info]: halt/breakpoint in debugger at %1 ignored [stepOrNext]' bindWith:ex suspendedContext) infoPrintCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4354
            ex proceed
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4355
        ] do:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4356
            self enter:con select:nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4357
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4358
        con := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4359
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4360
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4361
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4362
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4363
"/    "/ should no longer happen
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4364
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4365
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4366
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4367
"/        self enter:thisContext sender.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4368
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4369
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4370
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  4371
    Processor activeProcess ~~ inspectedProcess ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4372
        'DebugView [info]: stray step interrupt' infoPrintCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4373
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  4374
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  4375
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4376
    here := thisContext.        "stepInterrupt"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4377
    here := here sender.        "the caller; step- or contextIRQ"
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4378
    here := here sender.        "the interrupted context"
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4379
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4380
    DebuggingDebugger2 == true ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4381
        '***************************' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4382
        'here in ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4383
        inWrap ifTrue:['(wrap) ' print.].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4384
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4385
        here selector printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4386
        'stepping in ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4387
        steppedContext notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4388
            ((ObjectMemory addressOf:steppedContext) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4389
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4390
        steppedContext printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4391
    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4392
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4393
    (inBreakPointHandlingCode := (here selector == #break)) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4394
        bpntReceiver := here receiver.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4395
    ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4396
        (inBreakPointHandlingCode := (here sender selector == #break)) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4397
            bpntReceiver := here sender receiver.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4398
        ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4399
    ].
17058
76200a67176c #DOCUMENTATION by mawalch
mawalch
parents: 16994
diff changeset
  4400
13197
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4401
    "/ when single stepping, ignore breakpoints
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4402
    inBreakPointHandlingCode ifTrue:[
16376
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
  4403
        (bpntReceiver notNil and:[ bpntReceiver isKindOf:Breakpoint ]) ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4404
            false "here receiver isEnabled" ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4405
                con := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4406
                where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4407
                StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4408
                InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4409
                InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4410
                ^ self
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4411
            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4412
        ].
13197
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4413
    ].
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4414
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4415
    "/ kludge: a bug-workaround;
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4416
    "/ I should not see those...
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4417
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4418
    here selector == #ioInterrupt ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4419
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4420
            'oops - should not get that one' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4421
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4422
        Processor ioInterrupt.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4423
        StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4424
        InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4425
        where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4426
        InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4427
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4428
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4429
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4430
    stepUntilEntering notNil ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4431
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4432
            'check if entering ' print. stepUntilEntering printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4433
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4434
        (stepUntilEntering match:here selector) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4435
            DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4436
                'entering...' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4437
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4438
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , processName , ')').
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4439
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4440
            lastStepUntilEntering := stepUntilEntering.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4441
            stepUntilEntering := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4442
            self enter:here select:nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4443
            con := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4444
            ^ self
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4445
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4446
        "/ see if stepping context is still active ...
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4447
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4448
        con := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4449
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4450
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4451
            'start searching at: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4452
            con fullPrint.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4453
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4454
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4455
            con := con sender
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4456
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4457
        con notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4458
            DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4459
                'steppingContext still active - continue stepping' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4460
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4461
            con := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4462
            where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4463
            StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4464
            InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4465
            InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4466
            ^ self
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4467
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4468
        stepUntilEntering := nil.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4469
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4470
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  4471
    "
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4472
     kludge to hide breakpoint wrappers in the context list and when single stepping:
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4473
         check if we are in a wrapper method's hidden setup-sequence
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4474
         if so, ignore the interrupt and continue single sending.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4475
         Assume we are in a wrappers setup code, if there is another context above,
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4476
         which is for the wrapper method (i.e. if there is context with an originalmethod
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4477
         of some other context higher in the caller chain
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  4478
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4479
    isWrap := false.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4480
    subBlockLeft := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4481
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4482
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4483
    inWrap ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4484
        "/ situation1:
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4485
        "/   valueWithReceiver or other
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4486
        "/   foo (wrapped)                 <- wrapContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4487
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4488
        "/ situation2:
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4489
        "/   foo (original)                <- originalMethodsContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4490
        "/   valueWithReceiver
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4491
        "/   foo (wrapped)                 <- wrapContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4492
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4493
        "/ situation3:
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4494
        "/   other
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4495
        "/   foo (original)                <- originalMethodsContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4496
        "/   valueWithReceiver
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4497
        "/   foo (wrapped)                 <- wrapContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4498
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4499
        "/ situation4:
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4500
        "/   ... many-contexts ... (more than 8)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4501
        "/   possibly foo (original)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4502
        "/   valueWithReceiver or other
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4503
        "/   foo (wrapped)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4504
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4505
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4506
        "/ search for the wrapped method's context and extract the original method
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4507
        where := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4508
        8 timesRepeat:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4509
            wrapContext isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4510
                where notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4511
                    DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4512
                        ((ObjectMemory addressOf:where) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4513
                        where printCR
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4514
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4515
                    where isBlockContext ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4516
                        method := where method.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4517
                        (method notNil and:[method isWrapped]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4518
                            originalMethodOfWrappedMethod := method originalMethod.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4519
                            wrappedMethod := method.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4520
                            wrapContext := where.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4521
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4522
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4523
                    where := where sender
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4524
                ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4525
            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4526
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4527
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4528
            'wrap-context is: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4529
            wrapContext notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4530
                ((ObjectMemory addressOf:wrapContext) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4531
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4532
            wrapContext printCR
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4533
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4534
        originalMethodOfWrappedMethod isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4535
            'oops no wrap?' errorPrintCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4536
        ].
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4537
    ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4538
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4539
    (inWrap and:[ originalMethodOfWrappedMethod notNil ]) ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4540
        isWrap := false.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4541
        "/ DebuggingDebugger2 ifTrue:[ '----------->' print. originalMethodOfWrappedMethod printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4542
        where := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4543
        8 timesRepeat:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4544
            originalMethodsContext isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4545
                where notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4546
                    DebuggingDebugger2 ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4547
                        ((ObjectMemory addressOf:where) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4548
                        where printCR
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4549
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4550
                    where isBlockContext ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4551
                        method := where method.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4552
                        method == originalMethodOfWrappedMethod ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4553
                            originalMethodsContext := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4554
                            where == here ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4555
                                "/ situation2
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4556
                                DebuggingDebugger2 ifTrue:[ 's2' printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4557
                                isWrap := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4558
                                "/ here setSender:(wrapContext sender). --- leads to a crash
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4559
                            ] ifFalse: [
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4560
                                "/ situation3
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4561
                                DebuggingDebugger2 ifTrue:[ 's3' printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4562
                                inWrap := false.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4563
                                isWrap := false.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4564
                            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4565
                            steppedContext := where
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4566
"/                        ] ifFalse:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4567
"/                            where selector == wrapContext selector ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4568
"/                                where receiver == wrapContext receiver ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4569
"/                                    '!!!!!!!!!!!!!!!!!!!!!!!!' printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4570
"/                                    method printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4571
"/                                    method originalMethod printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4572
"/                                    originalMethodOfWrappedMethod printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4573
"/                                    '!!!!!!!!!!!!!!!!!!!!!!!!' printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4574
"/                                ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  4575
"/                            ].
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4576
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4577
                        where := where sender
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4578
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4579
                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4580
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4581
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4582
        DebuggingDebugger2 ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4583
            'original method-context is: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4584
            originalMethodsContext notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4585
                ((ObjectMemory addressOf:originalMethodsContext) printStringRadix:16) print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4586
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4587
            originalMethodsContext printCR
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4588
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4589
        originalMethodsContext isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4590
            originalMethodOfWrappedMethod isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4591
                "/ situation4
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4592
                DebuggingDebugger2 ifTrue:[ 's4' printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4593
                DebuggingDebugger2 ifTrue:[ steppedContext printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4594
                isWrap := false.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4595
            ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4596
                "/ situation1
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4597
                DebuggingDebugger2 ifTrue:[ 's1' printCR ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4598
                isWrap := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4599
                "/ steppedContext := wrapContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4600
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4601
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4602
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4603
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4604
    isWrap ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4605
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4606
            'ignore wrap' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4607
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4608
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4609
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4610
        "/ ignore, while in wrappers hidden setup
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4611
        "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4612
        where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4613
        ObjectMemory flushInlineCaches.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4614
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4615
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4616
            skipLineNr == #return ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4617
                'skipRet in wrap' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4618
            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4619
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4620
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4621
        StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4622
        InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4623
        InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4624
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4625
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  4626
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  4627
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4628
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4629
    DebuggingDebugger2 == true ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4630
        'bigStep is: ' print. bigStep printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4631
        'steppedContext is: ' print. steppedContext printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4632
    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4633
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4634
    s := 'Debugger: after step'.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4635
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4636
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4637
    "/ is this for a send or a step/next ?
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4638
    "/
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4639
    (bigStep and:[steppedContext notNil]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4640
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4641
         a step or next - ignore all contexts below the interesting one
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4642
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4643
        where := here.      "the interrupted context"
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4644
        contextBelow := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4645
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4646
        where home notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4647
            "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4648
            "/ in a block called by 'our' context ?
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4649
            "/
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4650
            where home == steppedContext ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4651
                "/ '*block*' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4652
                inBlock := true
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4653
            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4654
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4655
        (where == steppedContext) ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4656
            where := where sender.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4657
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4658
            where notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4659
                where home == steppedContext ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4660
                    "/ '*block*' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4661
                    inBlock := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4662
                ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4663
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4664
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4665
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4666
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4667
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  4668
"/where print. ' ' print. ((ObjectMemory addressOf:where)printStringRadix:16) printCR.
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  4669
"/steppedContext print. ' ' print. ((ObjectMemory addressOf:steppedContext)printStringRadix:16) printCR.
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  4670
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4671
            where == steppedContext ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4672
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4673
                "/ check if we are in a context below steppedContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4674
                "/ (i.e. if steppedContext can be reached from
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4675
                "/  interrupted context. Not using context-ref but its
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4676
                "/  address to avoid creation of many useless contexts.)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4677
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4678
                (inBlock) ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4679
                    [where notNil] whileTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4680
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4681
                        "/ if either the receiver or any arg of this context
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4682
                        "/ is a block of the steppedContext, we must really
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4683
                        "/ do a single step. Otherwise, stepping through a
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4684
                        "/ do:-loop would be very difficult.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4685
                        receiver := where receiver.
13197
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4686
where selector == #critical: ifTrue:[
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4687
anyStepBlocks := true.
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4688
] ifFalse:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4689
                        (receiver isBlock
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4690
                        and:[(receiver isKindOf:Block)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4691
                        and:[receiver homeMethod == steppedContext method
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4692
                             "receiver home == steppedContext"]])
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4693
                        ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4694
                            anyStepBlocks := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4695
                        ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4696
                            where args do:[:arg |
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4697
                                (arg isBlock
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4698
                                and:[(arg isKindOf:Block)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4699
                                and:[arg homeMethod == steppedContext method
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4700
                                     "arg home == steppedContext"]])
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4701
                                ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4702
                                    anyStepBlocks := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4703
                                ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4704
                                    (where methodHome notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4705
                                    and:[where methodHome receiver isBlock
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4706
                                    and:[(where methodHome receiver isKindOf:Block)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4707
                                    and:[where methodHome receiver homeMethod == steppedContext method
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4708
                                         "where methodHome receiver home == steppedContext"]]])
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4709
                                    ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4710
                                        anyStepBlocks := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4711
                                    ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4712
                                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4713
                            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4714
                        ].
13197
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  4715
].
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4716
                        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4717
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4718
                            where selector printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4719
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4720
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4721
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4722
"/ 'found it - below; ignore' printCR.
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4723
                            "
17058
76200a67176c #DOCUMENTATION by mawalch
mawalch
parents: 16994
diff changeset
  4724
                             found the interesting context somewhere up in the
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4725
                             chain. We seem to be still below the interesting one ...
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4726
                            "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4727
                            tracing == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4728
                                here printString printCR
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4729
                            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4730
                            "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4731
                              yes, a context below
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4732
                              - continue and schedule another stepInterrupt.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4733
                              Must flush caches since optimized methods not always
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4734
                              look for pending interrupts
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4735
                            "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4736
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4737
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4738
"/ 'prepare for unwind-catch' printCR.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4739
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4740
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4741
"/                                    self label:'single stepping - please wait ...(' , contextBelow selector , ')'.
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4742
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4743
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4744
                                DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4745
                                    'below stepCon; continue until unwind of: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4746
                                    contextBelow printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4747
                                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4748
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4749
                                StepInterruptPending := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4750
                            ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4751
                                ObjectMemory flushInlineCaches.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4752
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4753
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4754
"/                                    self label:'single stepping - please wait ...(' , here selector , ')'.
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  4755
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4756
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4757
                                DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4758
                                    'in stepCon; continue single stepping' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4759
                                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4760
                                StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4761
                                InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4762
                            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4763
                            where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4764
                            InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4765
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4766
                            ^ self
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4767
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4768
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4769
                        (steppedContext notNil and:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4770
                         where methodHome == steppedContext methodHome]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4771
                            inBlockBelow := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4772
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4773
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4774
                        anyStepBlocks ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4775
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  4776
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  4777
"/ which does not honor interrupt-on-return of block contexts
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  4778
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  4779
where isBlockContext ifFalse:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4780
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  4781
].
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4782
                            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4783
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4784
                        where := where sender
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4785
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4786
                    s := 'Debugger: context returned'.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4787
                    subBlockLeft := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4788
                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4789
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4790
"/ 'found it right in sender' printCR.
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4791
                s := 'Debugger: after step'
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4792
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4793
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4794
"/ 'found it right away' printCR.
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4795
            s := 'Debugger: after step'
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4796
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4797
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4798
"/ ' send' printCR.
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4799
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4800
         a send
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4801
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4802
        DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4803
            'clear steppedContext' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4804
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4805
        steppedContext := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4806
        s := 'Debugger: after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4807
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  4808
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4809
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4810
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4811
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4812
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4813
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4814
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4815
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4816
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4817
    subBlockLeft ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4818
        steppedContext home notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4819
            steppedContext := steppedContext home.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4820
            s := 'Debugger: after step'.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4821
            subBlockLeft := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  4822
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  4823
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4824
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4825
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4826
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4827
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4828
     kludge to hide breakpoint wrappers in the context list:
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4829
         check if we are in a wrapper methods hidden exit-sequence
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4830
         if so, ignore the interrupt and continue single sending
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4831
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4832
    (where isNil
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4833
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4834
    ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4835
        "/ did not find our steppedContext along the chain;
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4836
        "/ could be in a wrappedMethods exitBlock ...
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4837
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4838
        leftWrap ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4839
            where := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4840
            wrappedMethod := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4841
            5 timesRepeat:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4842
                where notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4843
                    where isBlockContext ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4844
                        method := where method.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4845
                        (method notNil and:[method isWrapped]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4846
                            where == wrapperContext ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4847
                                DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4848
                                    'change stepCon fromWrapped: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4849
                                    steppedContext print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4850
                                    ' to: ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4851
                                    wrapperContext printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4852
                                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4853
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4854
                                inWrap := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4855
                                enteredWrap := true.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4856
                                steppedContext := wrapperContext.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4857
                                wrapperContext := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4858
                            ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4859
                        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4860
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4861
                    where := where sender
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4862
                ]
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4863
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4864
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4865
        enteredWrap ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4866
            ignore := true
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4867
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4868
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4869
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4870
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4871
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4872
    subBlockLeft ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4873
        "/ special care for stepInterrupt in send,
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4874
        "/ when created a dummy context (lineNr == 1)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4875
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4876
        steppedContext lineNumber isNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4877
            steppedContext selector == here sender selector ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4878
                subBlockLeft := false.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4879
                s := 'Debugger: after step'.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4880
                steppedContext := here sender.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4881
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4882
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4883
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  4884
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  4885
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4886
    inBlock ifTrue:[
16376
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
  4887
        DebuggingDebugger2 == true ifTrue:[ 'inBlock' printCR ].
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4888
        s := 'Debugger: in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4889
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  4890
    inBlockBelow ifTrue:[
16376
28914ad442f9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16373
diff changeset
  4891
        DebuggingDebugger2 == true ifTrue:[ 'inBlockBelow' printCR ].
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4892
        ignore := true
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  4893
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4894
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4895
    DebuggingDebugger2 == true ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4896
        where notNil ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4897
            '(' print. steppedContextLineno print. ') ' print.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4898
            where printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4899
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  4900
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4901
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4902
    ignore ifFalse:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4903
        (bigStep
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4904
        and:[steppedContextLineno notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4905
        and:[where notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4906
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4907
            (here isBlockContext
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4908
            and:[(here methodHome == steppedContext)
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4909
                 or:[here home == steppedContext]]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4910
                DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4911
                    'same line but in block' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4912
                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4913
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4914
                steppedContext := actualContext := here.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4915
                steppedContextLineno := here lineNumber.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4916
            ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4917
                "/ kludge - I only have the info for up to 255 lines
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4918
                steppedContextLineno ~~ 255 ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4919
                    DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4920
                        'same line - ignored' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4921
                    ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4922
                    ignore := true
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4923
                ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4924
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4925
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4926
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4927
        (subBlockLeft not
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4928
        and:[skipLineNr notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4929
        and:[where notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4930
        and:[where lineNumber notNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4931
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4932
            DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4933
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4934
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4935
            ignore := true
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4936
        ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4937
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4938
        (steppedContextLineno isNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4939
        and:[skipLineNr isNil
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4940
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4941
            DebuggingDebugger2 == true ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4942
                'same line2 (after conIRQ) - ignored' printCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4943
            ].
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4944
            ignore := true
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4945
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4946
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4947
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4948
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4949
"/' ' printCR.
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4950
        where := nil. here := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4951
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4952
         yes, a context below
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4953
          - continue and schedule another stepInterrupt.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4954
          Must flush caches since optimized methods not always
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4955
          look for pending interrupts
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4956
        "
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4957
        ObjectMemory flushInlineCaches.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4958
        StepInterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4959
        InterruptPending := 1.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4960
        InStepInterrupt := nil.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4961
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4962
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4963
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  4964
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4965
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  4966
    self label:(s , ' (process: ' , processName , ')').
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  4967
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4968
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4969
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  4970
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4971
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4972
    where := nil. here := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4973
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4974
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4975
    DebuggingDebugger2 == true ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4976
        '==> enter on: ' print. thisContext sender sender printCR.
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  4977
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4978
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4979
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4980
    (oneMore == true) ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4981
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4982
            initiallyShown := 2
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4983
        ] ifFalse:[
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4984
            initiallyShown := 1
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4985
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4986
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  4987
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  4988
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  4989
    HaltInterrupt handle:[:ex |
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4990
        'DebugView [info]: halt/breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4991
        ex proceed
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  4992
    ] do:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4993
        self enter:con select:initiallyShown
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  4994
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  4995
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4996
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  4997
    "Created: / 14-10-1996 / 12:53:39 / cg"
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  4998
    "Modified: / 30-04-2016 / 11:47:01 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  4999
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5000
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  5001
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5002
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5003
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5004
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5005
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5006
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5007
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5008
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5009
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5010
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5011
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5012
    (cls includesSelector:sel) ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5013
        sel := nil
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5014
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5015
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5016
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  5017
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5018
autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5019
    ^ UserPreferences current autoRaiseDebugger
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5020
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5021
    "Created: / 15-05-2007 / 13:29:55 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5022
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5023
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5024
autoRaiseView:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5025
    UserPreferences current autoRaiseDebugger:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5026
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5027
    "Created: / 15-05-2007 / 13:30:04 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5028
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  5029
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5030
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5031
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5032
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5033
    updateProcess notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5034
        monitorToggle lampColor:(Color yellow).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5035
        updateProcess terminate.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5036
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5037
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5038
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5039
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5040
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5041
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5042
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5043
    updateProcess isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5044
        updateProcess :=
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5045
            [
17433
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5046
                |delay|
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5047
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5048
                delay := Delay forSeconds:0.25.
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5049
                [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5050
                    monitorToggle showLamp ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5051
                        monitorToggle lampColor:(Color yellow).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5052
                    ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5053
                        monitorToggle activeForegroundColor:Color black.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5054
                    ].
17433
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5055
                    delay wait.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5056
                    self updateContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5057
                    monitorToggle showLamp ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5058
                        monitorToggle lampColor:(Color red).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5059
                    ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5060
                        monitorToggle activeForegroundColor:Color red.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5061
                    ].
17433
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5062
                    delay wait.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5063
                    self updateContext.
17433
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5064
                ] loop
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5065
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5066
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5067
17433
e34eae9673df #TUNING by stefan
Stefan Vogel <sv@exept.de>
parents: 17426
diff changeset
  5068
    "Modified: / 23-02-2017 / 13:25:32 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5069
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5070
13408
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5071
browseBlocksHome
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5072
    "browse the receiver block's home method (if a value-like send is selected)"
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5073
13414
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5074
    |cls sel block mthd|
13408
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5075
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5076
    selectedContext isNil ifTrue:[^ self].
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5077
    (block := selectedContext receiver) isBlock ifFalse:[ ^ self ].
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5078
13414
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5079
    mthd := block method.
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5080
    cls := mthd mclass.
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5081
    sel := mthd selector.
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5082
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5083
    (cls notNil and:[(cls includesSelector:sel)]) ifTrue:[
15835
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5084
        cls browserClass openInClass:cls selector:sel.
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5085
        ^ self
13414
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5086
    ].
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5087
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5088
    mthd source notEmptyOrNil ifTrue:[
15835
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5089
        (Dialog confirm:'Block''s home method is (no longer) present in any class.\Do you want to see the method anyway?' withCRs)
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5090
        ifTrue:[
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5091
            SystemBrowser default browseMethods:{ mthd } title:'Unbound Method' sort:false
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5092
            "/ TextView openWith:mthd source title:'Unbound Method''s Source'.
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5093
        ].
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5094
        ^ self
13414
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5095
    ].
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5096
    cls notNil ifTrue:[
15835
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5097
        (Dialog confirm:'Block''s home method is (no longer) present in any class and no source can be shown.\Do you want to browse the method''s last class instead?' withCRs)
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5098
        ifTrue:[
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5099
            cls browserClass openInClass:cls selector:nil.
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5100
        ].
13df5b55f4cf class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15774
diff changeset
  5101
        ^ self
13414
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5102
    ].
91c34e5eaf4e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13412
diff changeset
  5103
    Dialog information:'Block''s home method is (no longer) present in any class.'.
13408
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5104
!
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  5105
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5106
browseClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5107
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5108
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5109
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5110
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5111
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5112
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5113
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5114
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  5115
    (cls includesSelector:sel) ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5116
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5117
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5118
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5119
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5120
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5121
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5122
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5123
browseClassHierarchy
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5124
    "browse the receiver's classHierarchy (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5125
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5126
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5127
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5128
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5129
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5130
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5131
    mthd notNil ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5132
        cls := mthd containingClass.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5133
        "/ still nil if unbound - then use receiver's class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5134
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5135
    cls isNil ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5136
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5137
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5138
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5139
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5140
    "Modified: / 17-11-2001 / 19:43:06 / cg"
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5141
    "Modified (comment): / 30-04-2016 / 15:51:28 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5142
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5143
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5144
browseFullClassProtocol
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5145
    "browse the receiver's full protocol (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5146
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5147
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5148
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5149
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5150
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5151
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5152
    mthd notNil ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5153
        cls := mthd containingClass.
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5154
        "/ still nil if unbound - then use receiver's class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5155
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5156
    cls isNil ifTrue:[
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5157
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5158
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5159
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5160
16373
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5161
    "Modified: / 17-11-2001 / 19:43:43 / cg"
378ee9342601 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16262
diff changeset
  5162
    "Modified (comment): / 30-04-2016 / 15:51:32 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5163
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5164
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5165
browseImplementingClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5166
    "browse the implementing class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5167
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5168
    |con mthd who sel cls home|
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5169
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5170
    con := selectedContext ? actualContext.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5171
    con isNil ifTrue:[^ self].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5172
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5173
    mthd := con method.
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5174
    mthd notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5175
        who := mthd who.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5176
        who notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5177
            cls := who methodClass.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5178
            sel := who methodSelector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5179
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5180
            "might have been re-accepted"
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5181
            (home := con methodHome) notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5182
                (sel := home selector) notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5183
                    cls := home receiver class
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5184
                            whichClassImplements:selectedContext selector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5185
                    cls notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5186
                        Dialog information:'Method has been changed/moved in the meanwhile.\Browser will show the most recent (current) version.' withCRs.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5187
                    ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5188
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5189
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5190
        ].
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5191
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5192
    cls isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5193
        "/ class not found - try receiver
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5194
        cls := con receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5195
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5196
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  5197
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5198
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  5199
    "Created: / 22-11-1995 / 21:27:01 / cg"
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5200
    "Modified: / 19-07-2012 / 11:27:32 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5201
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5202
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5203
browseImplementors
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5204
    "open a browser on the implementors of the selected method's selector"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5205
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5206
    selectedContext isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5207
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5208
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  5209
    "/ selectedContext receiver class browserClass
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5210
    self withWaitCursorDo:[
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5211
        SystemBrowser default browseImplementorsOf:selectedContext selector.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5212
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5213
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5214
    "Modified: / 01-09-2017 / 14:20:18 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5215
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5216
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5217
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5218
    "open a browser on the implementors of some selector"
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5219
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5220
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5221
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5222
    (sel := codeView selection) notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5223
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5224
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5225
    initial isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5226
        initial := selectedContext isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5227
                            ifTrue:[nil]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5228
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5229
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5230
    selector := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5231
                    requestSelector:'Selector to browse implementors of:'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5232
                    initialAnswer:initial.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5233
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5234
    selector notEmptyOrNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5235
        self withWaitCursorDo:[
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5236
            SystemBrowser default browseImplementorsMatching:selector.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5237
        ]
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5238
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5239
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5240
    "Modified: / 01-09-2017 / 14:20:26 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5241
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5242
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5243
browseProcessesApplication
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5244
    "browse the application class (of the process, if it is a GUI process)"
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5245
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5246
    |app appClass|
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5247
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5248
    (app := self processesApplication) notNil ifTrue:[
17106
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  5249
        appClass := app class.
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  5250
        appClass browserClass openInClass:appClass selector:nil.
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5251
    ].
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5252
!
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5253
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5254
browseReceiversClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5255
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5256
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5257
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5258
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5259
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5260
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5261
    selectedContext isCheapBlockContext ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5262
        cls := selectedContext method mclass.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5263
        sel := selectedContext method selector.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5264
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5265
        cls := selectedContext receiver class.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5266
        sel := selectedContext selector.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5267
    ].
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  5268
    (cls includesSelector:sel) ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5269
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5270
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5271
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5272
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5273
    "Modified: / 19-07-2012 / 11:29:48 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5274
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5275
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5276
browseSenders
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5277
    "open a browser on the senders of the selected method's selector"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5278
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5279
    selectedContext isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5280
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5281
    ].
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5282
    self withWaitCursorDo:[
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5283
        SystemBrowser default browseAllCallsOn:selectedContext selector.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5284
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5285
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5286
    "Modified: / 01-09-2017 / 14:20:30 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5287
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5288
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5289
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5290
    "open a browser on the senders of some selector"
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5291
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5292
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5293
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5294
    (sel := codeView selection) notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5295
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5296
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5297
    initial isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5298
        initial := selectedContext isNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5299
                            ifTrue:[nil]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5300
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5301
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5302
    selector := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5303
                    requestSelector:'Selector to browse senders of:'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5304
                    initialAnswer:initial.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5305
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5306
    selector notEmptyOrNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5307
        self withWaitCursorDo:[
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5308
            SystemBrowser default browseAllCallsOn:selector asSymbol.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5309
        ]
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5310
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5311
17664
e74422834c05 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17642
diff changeset
  5312
    "Modified: / 01-09-2017 / 14:20:36 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5313
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5314
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5315
clearRememberedCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5316
    "clear the remembered callchain."
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5317
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5318
    RememberedCallChain := nil
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5319
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5320
    "Created: / 08-03-2012 / 01:29:46 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5321
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5322
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5323
closeAllDebuggers
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5324
    (Dialog confirm:'Close all Debuggers (without confirmation if code was changed)?')
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5325
    ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5326
        ^ self
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  5327
    ].
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  5328
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  5329
    self class allInstancesDo:[:debugger |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5330
        debugger ~~ self ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5331
            debugger busy ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5332
                debugger destroyWithConfirmation:true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5333
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5334
        ].
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5335
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5336
    self closeRequest.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5337
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5338
    "Created: / 23-03-2012 / 12:40:22 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5339
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5340
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5341
configureX:x y:y width:newWidth height:newHeight
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5342
    super configureX:x y:y width:newWidth height:newHeight.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5343
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5344
    LastOrigin := self origin.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5345
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5346
    "Created: / 10-11-2010 / 10:09:11 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5347
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5348
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5349
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5350
    "place the contents of the walkback view into the copy-paste buffer.
12884
399d8af76101 class: DebugView
Stefan Vogel <sv@exept.de>
parents: 12862
diff changeset
  5351
     This allows pasting it into some other view for printing.
399d8af76101 class: DebugView
Stefan Vogel <sv@exept.de>
parents: 12862
diff changeset
  5352
399d8af76101 class: DebugView
Stefan Vogel <sv@exept.de>
parents: 12862
diff changeset
  5353
     Show the full verbose context without filtering."
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5354
17473
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5355
    self copyWalkbackTextWithVariables:false
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5356
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5357
    "Modified: / 28-08-1995 / 15:31:59 / claus"
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5358
    "Modified: / 15-03-2017 / 14:20:43 / cg"
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5359
!
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5360
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5361
copyWalkbackTextWithVariables
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5362
    "place the contents of the walkback view into the copy-paste buffer.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5363
     This allows pasting it into some other view for printing.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5364
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5365
     Show the full verbose context without filtering."
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5366
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5367
    self copyWalkbackTextWithVariables:true
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5368
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5369
    "Created: / 15-03-2017 / 14:20:49 / cg"
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5370
!
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5371
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5372
copyWalkbackTextWithVariables:withVariables
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5373
    "place the contents of the walkback view into the copy-paste buffer.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5374
     This allows pasting it into some other view for printing.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5375
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5376
     Show the full verbose context without filtering."
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5377
10760
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  5378
    |infoText|
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  5379
17473
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5380
    infoText := 
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5381
        String streamContents:[:s |
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5382
            firstContext isNil ifTrue:[
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5383
                s nextPutAll:'No context, no walkback'.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5384
            ] ifFalse:[
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5385
                exceptionInfoLabel notNil ifTrue:[
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5386
                    s nextPutAll: exceptionInfoLabel label; cr;cr.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5387
                ].
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5388
                firstContext fullPrintAllOn:s withVariables:withVariables.
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5389
            ].
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5390
        ].
10760
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  5391
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  5392
    self setClipboardText:infoText
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5393
17473
1d3828bf3109 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17433
diff changeset
  5394
    "Created: / 15-03-2017 / 14:20:31 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5395
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5396
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5397
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5398
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5399
     at save places (for example: in the event loop) and returns back
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5400
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5401
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5402
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Abort anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5403
    ifFalse:[ ^ self ].
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5404
    ^ self doAbortWithoutConfirmation
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5405
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5406
    "Modified: / 25-11-2016 / 13:37:05 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5407
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5408
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5409
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5410
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5411
     at save places (for example: in the event loop) and returns back
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5412
     from whatever the process is doing, but does not terminate it."
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5413
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5414
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Abort anyway ?') 
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5415
    ifFalse:[ ^ self ].
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5416
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5417
    inspecting ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5418
        inspectedProcess isDead ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5419
            self showTerminated.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5420
            ^ self
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5421
        ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5422
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5423
            self showError:'** the process does not handle the abort signal **'
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5424
        ] ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5425
            self interruptProcessWith:[AbortAllOperationRequest raise].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5426
        ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5427
        ^ self
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5428
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5429
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5430
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5431
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5432
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5433
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5434
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5435
    catchBlock notNil ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5436
        abortButton turnOff.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5437
        catchBlock value.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5438
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5439
        "/ not reached
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5440
        'DebugView [warning]: abort failed' errorPrintCR.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5441
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5442
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5443
    ^ self.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5444
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5445
    "Modified: / 25-11-2016 / 13:36:15 / cg"
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5446
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5447
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5448
doAbortWithoutConfirmation
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5449
    "abort - send Object>>abortSignal, which is usually caught
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5450
     at save places (for example: in the event loop) and returns back
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5451
     from whatever the process is doing, but does not terminate it."
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5452
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5453
    inspecting ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5454
        inspectedProcess isDead ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5455
            self showTerminated.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5456
            ^ self
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5457
        ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5458
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5459
            self showError:'** the process does not handle the abort signal **'
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5460
        ] ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5461
            self interruptProcessWith:[AbortOperationRequest raise].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5462
        ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5463
        ^ self
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5464
    ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5465
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5466
    steppedContext := wrapperContext := nil.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5467
    haveControl := false.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5468
    exitAction := #abort.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5469
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5470
    "exit private event-loop"
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5471
    catchBlock notNil ifTrue:[
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5472
        abortButton turnOff.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5473
        catchBlock value.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5474
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5475
        "/ not reached
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5476
        'DebugView [warning]: abort failed' errorPrintCR.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5477
    ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5478
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5479
    ^ self.
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5480
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5481
    "Modified: / 17.11.2001 / 22:53:22 / cg"
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5482
!
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  5483
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5484
doChangeProcessPriority
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5485
    "ask for and change the process's priority"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5486
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5487
    |oldPrio newPrio s|
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5488
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5489
    oldPrio := (inspectedProcess ? Processor activeProcess) priority.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5490
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5491
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5492
        s := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5493
                request:(resources stringWithCRs:'Change the processes priority to (proceed with prio):\\    2 - system background\    4 - user background\    8 - normal\    9 - high\   16 - I/O (danger alert)\')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5494
                initialAnswer:oldPrio printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5495
        s isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5496
        newPrio := Integer readFrom:s onError:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5497
        newPrio isNil
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5498
    ] whileTrue.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5499
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5500
    newPrio := newPrio max:(Processor lowestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5501
    newPrio := newPrio min:(Processor highestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5502
    newPrio >= Processor highIOPriority ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5503
        (Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5504
                confirm:(resources
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5505
                            stringWithCRs:'Attention: event handling takes place at prio 16.\An ever running high priority process\could block the system and make the UI unusable.\\Proceed?'))
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5506
        ifFalse:[^ self].
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5507
    ].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5508
    (inspectedProcess ? Processor activeProcess) priority:newPrio.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5509
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5510
    "Created: / 07-03-2012 / 14:15:09 / cg"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5511
!
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  5512
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5513
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5514
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5515
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  5516
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  5517
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5518
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Continue anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5519
    ifFalse:[ ^ self ].
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5520
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5521
    inspecting ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5522
        device hasColors ifTrue:[
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  5523
            continueButton foregroundColor:Color darkRed.
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5524
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5525
        continueButton label:(resources string:'Stop').
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5526
        continueButton action:[self doStop].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5527
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5528
        self processPerform:#resume.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5529
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5530
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5531
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5532
    canContinue ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5533
        exContext := thisContext findSpecialHandle:false raise:true.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5534
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5535
        (exContext notNil
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  5536
        and:[ (ex := exContext receiver) isProtoObject not
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5537
        and:[ ex isException
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5538
        and:[ ex creator == NoHandlerError
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5539
        and:[ ex exception creator == RecursionError]]]])
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5540
        ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5541
            "/ debug due to unhandled recursionInterrupt.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5542
            "/ ask if we should proceed with more stack.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5543
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5544
            answer := self confirm:'Debugger entered due to a stack overflow.\\Continue with more stack ?' withCRs.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5545
            answer == true ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5546
                proc := Processor activeProcess.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5547
                proc setMaximumStackSize:(proc maximumStackSize * 2).
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5548
            ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5549
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5550
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5551
        steppedContext := wrapperContext := nil.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5552
        tracing := false.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5553
        haveControl := false.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5554
        exitAction := #continue.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5555
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5556
        "exit private event-loop"
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5557
        catchBlock value.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5558
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5559
        "/ not reached.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5560
        'DebugView [warning]: continue failed' errorPrintCR.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5561
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  5562
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5563
    ] ifFalse:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5564
        inspecting ifFalse:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5565
            'DebugView [info]: resuming top context' infoPrintCR.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5566
            self showSelection:1.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5567
            self doReturn
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  5568
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5569
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  5570
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5571
    "Modified: / 26-07-1999 / 15:38:45 / stefan"
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5572
    "Modified: / 25-11-2016 / 13:37:20 / cg"
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  5573
    "Modified: / 13-03-2019 / 21:16:32 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5574
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5575
13351
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5576
doContinueAfterDelay
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5577
    Delay waitForSeconds:5.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5578
    self doContinue.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5579
!
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5580
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5581
doDefine
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5582
    "when we hit an unimplemented message, the define button becomes visible.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5583
     This is the action of it, when clicked.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5584
     Define a new halting method in the faulting class,
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5585
     and restart the context so we end up in the halt of the new method"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5586
     
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5587
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat implClass idx callee restart varName argName|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  5588
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  5589
    selectionIndex := contextView selection.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  5590
    restart := true.
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  5591
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5592
    selectorToDefine notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5593
        selector := selectorToDefine.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5594
        receiversClass := classToDefineIn.
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5595
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5596
        selector := actualContext selector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5597
        receiversClass := actualContext receiver class.
13538
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5598
    ].
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5599
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5600
    implClass := actualContext receiver class whichClassIncludesSelector:selector.
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5601
    implClass notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5602
        "/ must be a subclassResponsibility
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5603
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5604
        idx := contextArray identityIndexOf:actualContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5605
        idx > 1 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5606
            callee := contextArray at:idx-1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5607
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5608
            callee selector == #subclassResponsibility ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5609
                restart := false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5610
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5611
        ].
13538
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5612
    ].
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5613
bd35b9f1813a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13519
diff changeset
  5614
    "generate nice argument names"
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5615
    argNames := self argumentNamesForNewMethodOfContext:actualContext.
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  5616
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5617
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5618
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5619
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5620
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5621
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  5622
    ( { UndefinedObject . True . False } includes:receiversClass ) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5623
        (self confirm:'Are you sure you want to add this method (to ',receiversClass name,') ?')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5624
        ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5625
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5626
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5627
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5628
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5629
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5630
    "/ code for a getter
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5631
    (receiversClass instVarNames includes:selector) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5632
        code := '%1\' , haltStmtFix , '\    ^ %2'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5633
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5634
    ].
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5635
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5636
    "/ code for a setter
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5637
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5638
    and:[(selector endsWith:':')
12716
062e27d32904 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12687
diff changeset
  5639
    and:[receiversClass instVarNames includes:(selector copyButLast:1)]])
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5640
    ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5641
        varName := selector copyButLast:1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5642
        argName := argNames first.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5643
        code := '%1\' , haltStmtFix , '\    %3 := %4.'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5644
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5645
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5646
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5647
    "/ code for a tester
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5648
    (selector numArgs == 0
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5649
    and:[(selector startsWith:'is')
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5650
    and:[(Smalltalk classNamed:(selector copyFrom:3)) notNil ]])
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5651
    ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5652
        (receiversClass nameWithoutPrefix = (selector copyFrom:3)) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5653
            code := '%1\' , haltStmtFix , '\    ^ true.'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5654
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5655
            code := '%1\' , haltStmtFix , '\    ^ false.'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5656
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5657
        cat := 'testing'.
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5658
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5659
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5660
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5661
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5662
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5663
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5664
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5665
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5666
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5667
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5668
    code isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5669
        code := '%1\' , haltStmtDef
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5670
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5671
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5672
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5673
        codeAccept:(code bindWith:proto with:selector with:varName with:argName) withCRs
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5674
        inClass:receiversClass
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5675
        unwind:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5676
        category:cat
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5677
        onCancel:[^ self].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5678
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  5679
    self doShowSelection:selectionIndex.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  5680
    restart ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5681
        self doRestart
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  5682
    ]
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5683
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5684
    "Modified: / 08-02-2017 / 08:58:50 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5685
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5686
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5687
doGotoApplicationActionMethod
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5688
    "select the first application-model context.
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5689
     This is another great helper, when you hit an exception,
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5690
     to quickly navigate to the responsible code of you application"
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5691
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5692
    contextArray keysAndValuesDo:[:i :c |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5693
        |nextCon nextRcvr dialog|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5694
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5695
        "/ find the first appModel context
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5696
        nextCon := contextArray at:i+1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5697
        "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5698
        "/ while not in the appModel
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5699
        "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5700
        [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5701
            nextRcvr := nextCon receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5702
            (nextRcvr isKindOf:ApplicationModel)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5703
        ] whileFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5704
            nextCon := nextCon sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5705
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5706
        self selectContext:nextCon.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5707
        ^ self.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5708
    ].
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5709
    "/ not found
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
  5710
    self beepInEditor.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5711
    gotoApplicationActionMethodButton disable.
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5712
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5713
    "Modified: / 30-11-2017 / 12:24:36 / cg"
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5714
!
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5715
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5716
doGotoDialogOpener
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  5717
    "select the context where the dialog was opened.
17426
831f94aac2bd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17398
diff changeset
  5718
     This is a great helper, when you press interrupt while a modal dialog is open, 
831f94aac2bd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17398
diff changeset
  5719
     to quickly navigate to the corresponding opening code of your application"
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5720
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5721
    contextArray keysAndValuesDo:[:i :c |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5722
        |nextCon nextRcvr dialog|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5723
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5724
        "/ find the openModal, then walk upward
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5725
        ((c selector == #openModal) or:[c selector == #openModal:]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5726
            dialog := c receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5727
            nextCon := contextArray at:i+1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5728
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5729
            "/ while still in dialog code
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5730
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5731
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5732
                nextRcvr := nextCon receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5733
                (nextRcvr == dialog)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5734
                or:[ nextRcvr == dialog class
17860
8dff8e34519a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17834
diff changeset
  5735
                or:[ ((nextCon selector ? '') startsWith:'open')
8dff8e34519a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17834
diff changeset
  5736
                or:[ (nextRcvr isBehavior and:[nextRcvr includesBehavior:FileDialog])
8dff8e34519a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17834
diff changeset
  5737
                or:[ (nextRcvr isBehavior and:[nextRcvr includesBehavior:Dialog])
17426
831f94aac2bd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17398
diff changeset
  5738
                or:[ nextRcvr class == UserConfirmation
831f94aac2bd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17398
diff changeset
  5739
                or:[ nextRcvr == UserConfirmation
17860
8dff8e34519a #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17834
diff changeset
  5740
                or:[ nextCon method == (Object compiledMethodAt:#confirm:) ]]]]]]]  
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5741
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5742
                (nextCon isBlockContext and:[ nextCon methodHome notNil]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5743
                    nextCon := nextCon methodHome
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5744
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5745
                nextCon := nextCon sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5746
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5747
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5748
            "/ while still in a Notification
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5749
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5750
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5751
                nextRcvr := nextCon receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5752
                (nextRcvr isKindOf:UserInformation)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5753
                or:[ nextRcvr isBehavior
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5754
                     and:[nextRcvr includesBehavior:UserInformation]]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5755
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5756
                nextCon := nextCon sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5757
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5758
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5759
            "/ while still in UIBuilder
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5760
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5761
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5762
                nextRcvr := nextCon receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5763
                (nextRcvr isKindOf:WindowBuilder)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5764
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5765
                nextCon := nextCon sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5766
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5767
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5768
            "/ while still in SimpleDialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5769
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5770
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5771
                nextRcvr := nextCon receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5772
                (nextRcvr class == SimpleDialog)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5773
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5774
                nextCon := nextCon sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5775
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5776
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5777
            "/ while still in applicationModel support code
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5778
            "/
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5779
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5780
                (nextCon selector startsWith:'openDialogSpec').
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5781
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5782
                nextCon := nextCon sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5783
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5784
            self selectContext:nextCon.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5785
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5786
        ]
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5787
    ].
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  5788
    "/ not found
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
  5789
    self beepInEditor.
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5790
    gotoDialogOpenerButton disable.
17426
831f94aac2bd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17398
diff changeset
  5791
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5792
    "Modified: / 30-11-2017 / 12:24:28 / cg"
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5793
!
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5794
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5795
doGotoRaisingMethod
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5796
    "select the (next) context where the exception was raised.
18169
9f28fdbb4afe #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18158
diff changeset
  5797
     This is a great helper, to quickly navigate to the code which is responsible for the error"
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5798
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5799
    |idx|
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5800
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5801
    idx := contextArray identityIndexOf:selectedContext.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5802
    idx+1 to:contextArray size do:[:i |
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5803
        |c nextCon nextRcvr dialog|
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5804
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5805
        c := contextArray at:i.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5806
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5807
        "/ find the doRaise, then walk upward to the method which did the raise 
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5808
        "/ (i.e. skip above the raiseXXX contexts)
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5809
        (c selector == #doRaise) ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5810
            nextCon := contextArray at:i+1.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5811
            [
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5812
                nextCon selector startsWith:'raise'
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5813
            ] whileTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5814
                (nextCon isBlockContext and:[ nextCon methodHome notNil]) ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5815
                    nextCon := nextCon methodHome
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5816
                ].
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5817
                nextCon := nextCon sender.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5818
            ].
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5819
            
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5820
            "/ skip over support code...
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5821
            ( #( #'doesNotUnderstand:' ) includes:nextCon selector) ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5822
                nextCon := nextCon sender sender.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5823
            ].
17822
37f9011c8496 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17821
diff changeset
  5824
            ( #( #'subclassResponsibility' ) includes:nextCon selector) ifTrue:[
37f9011c8496 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17821
diff changeset
  5825
                nextCon := nextCon sender.
37f9011c8496 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17821
diff changeset
  5826
            ].
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5827
            self selectContext:nextCon.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5828
            ^ self.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5829
        ]
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5830
    ].
18169
9f28fdbb4afe #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18158
diff changeset
  5831
    "/ #doRaise not found
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
  5832
    self beepInEditor.
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5833
    "/ gotoRaisingMethodButton disable.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5834
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  5835
    "Created: / 30-11-2017 / 12:18:36 / cg"
17822
37f9011c8496 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17821
diff changeset
  5836
    "Modified: / 30-11-2017 / 13:20:29 / cg"
18169
9f28fdbb4afe #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18158
diff changeset
  5837
    "Modified (comment): / 31-05-2018 / 10:52:24 / Claus Gittinger"
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5838
!
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  5839
12671
9124b4453947 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12633
diff changeset
  5840
doInspectProcess
9124b4453947 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12633
diff changeset
  5841
    (inspectedProcess ? Processor activeProcess) inspect.
9124b4453947 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12633
diff changeset
  5842
!
9124b4453947 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12633
diff changeset
  5843
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5844
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5845
    "single send; reenter with next message send"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5846
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5847
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5848
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5849
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Step anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5850
    ifFalse:[ ^ self ].
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5851
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5852
    canContinue ifTrue:[
16961
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5853
        steppedContext := wrapperContext := nil.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5854
        haveControl := false.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5855
        exitAction := #step.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5856
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5857
        "exit private event-loop"
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5858
        catchBlock value.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5859
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5860
        "/ not reached
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5861
        'DebugView [warning]: send failed' errorPrintCR.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  5862
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5863
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5864
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5865
    "Created: / 06-03-1997 / 21:09:36 / cg"
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5866
    "Modified: / 25-11-2016 / 13:37:34 / cg"
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5867
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  5868
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5869
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5870
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5871
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5872
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5873
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  5874
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5875
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5876
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5877
13351
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5878
doNextAfterDelay
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5879
    Delay waitForSeconds:5.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5880
    self doNext.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5881
!
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  5882
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5883
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5884
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5885
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5886
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5887
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5888
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5889
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5890
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5891
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5892
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5893
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5894
    "skip for next source-code line; skip over blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5895
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5896
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5897
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5898
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5899
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  5900
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5901
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5902
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5903
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5904
    traceView notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5905
        traceView topView destroy.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5906
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5907
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5908
    tracing := false
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5909
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5910
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5911
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5912
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5913
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5914
    | str |
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  5915
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5916
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5917
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5918
    str nextPutLine:('Error notification from '
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5919
                    , OperatingSystem getLoginName
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5920
                    , '@'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5921
                    , OperatingSystem getHostName).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5922
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5923
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  5924
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5925
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5926
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5927
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5928
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5929
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5930
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5931
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5932
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5933
    firstContext notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5934
        firstContext fullPrintAllOn:str.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5935
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5936
    str cr;cr.
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  5937
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5938
    SendMailTool
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5939
        openForMessage:(str contents)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5940
        withSubject:('STX Error:[', self label, ']')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5941
        preOpenBlock:[:inst|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5942
            inst recipientEntryField value:'error@exept.de'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  5943
        ].
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  5944
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  5945
    "Modified: / 20-09-2007 / 12:40:40 / cg"
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5946
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  5947
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5948
doRedefineMethodInReceiverClass
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5949
    |con selectionIndex argNames proto receiverClass implClass implMethod selector code cat|
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5950
    
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5951
    (con := actualContext) notNil ifTrue:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5952
        selectionIndex := contextView selection.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5953
        
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5954
        (actualContext home) notNil ifTrue:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5955
            con := actualContext home 
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5956
        ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5957
        selector := con selector.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5958
        receiverClass := con receiver class.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5959
        (receiverClass implements:selector) ifFalse:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5960
            implClass := receiverClass whichClassIncludesSelector:selector.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5961
            implMethod := implClass compiledMethodAt:selector.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5962
            
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5963
            argNames := self argumentNamesForNewMethodOfContext:con.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5964
            proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5965
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5966
            code := '%1\    self halt:''please redefine %2 here''.\    ^ super %1'.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5967
            cat := implMethod category.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5968
            
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5969
            self
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5970
                codeAccept:(code bindWith:proto with:selector) withCRs
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5971
                inClass:receiverClass
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5972
                unwind:false
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5973
                category:cat
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5974
                onCancel:[^ self].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5975
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5976
            self doShowSelection:selectionIndex.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5977
            self doRestart
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5978
        ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5979
    ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5980
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5981
    "Created: / 08-02-2017 / 09:07:25 / cg"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5982
!
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  5983
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5984
doResend
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5985
    "resend - the selected context is unwound and its message resent.
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5986
     To be done after a cde change, to get nto the new method"
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5987
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5988
    inspecting ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5989
        ^ self showError:'** not avail in inspecting debugger **'
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5990
    ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5991
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5992
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Resend anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5993
    ifFalse:[ ^ self ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  5994
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5995
    steppedContext := wrapperContext := nil.
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5996
    haveControl := false.
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5997
    exitAction := #resend. "exit private event-loop"
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5998
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  5999
    catchBlock value.
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6000
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6001
    "/ normally not reached
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6002
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6003
    'DebugView [warning]: resend failed' errorPrintCR.
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6004
    resendButton turnOff.
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6005
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6006
    "Modified: / 25-11-2016 / 13:37:56 / cg"
13360
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6007
!
f87b54dfc58a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13351
diff changeset
  6008
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6009
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6010
    "restart - the selected context will be restarted"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6011
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6012
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Restart anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6013
    ifFalse:[ ^ self ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6014
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6015
    inspecting ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6016
        selectedContext isNil ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6017
            ^ self showError:'** select a context first **'
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6018
        ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6019
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6020
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6021
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  6022
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6023
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6024
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6025
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6026
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6027
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6028
    "/ normally not reached
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6029
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  6030
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6031
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6032
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6033
    "Modified: / 25-11-2016 / 13:38:14 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6034
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6035
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6036
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6037
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6038
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6039
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Return anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6040
    ifFalse:[ ^ self ].
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6041
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6042
    inspecting ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6043
        selectedContext isNil ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6044
            ^ self showError:'** select a context first **'
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6045
        ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6046
        self interruptProcessWith:[selectedContext unwind:nil].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6047
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6048
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6049
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  6050
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6051
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6052
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6053
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6054
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6055
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  6056
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6057
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  6058
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6059
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6060
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6061
    "Modified: / 25-11-2016 / 13:38:27 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6062
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6063
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6064
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6065
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6066
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  6067
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6068
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6069
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6070
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6071
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6072
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6073
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6074
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6075
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6076
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6077
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6078
"/        catchBlock notNil ifTrue:[catchBlock value].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6079
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6080
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6081
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6082
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6083
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  6084
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  6085
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6086
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6087
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6088
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6089
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6090
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  6091
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  6092
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  6093
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  6094
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6095
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6096
13197
74bdfa87c71d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13162
diff changeset
  6097
doStep:lineNrOrNilOrMinus1
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6098
    "common helper for step, skip & next.
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
  6099
     Arrange for single-stepping until we pass lineNr (if nonNil)
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6100
     or to next line (if nil) or to next send (if -1)"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6101
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6102
    |con method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6103
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6104
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6105
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6106
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Step anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6107
    ifFalse:[ ^ self ].
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6108
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6109
    canContinue ifTrue:[
16961
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6110
        selectedContext notNil ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6111
            con := actualContext. "/ selectedContext.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6112
            steppedContextLineno := actualContext lineNumber.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6113
        ] ifFalse:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6114
            con := contextArray at:2.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6115
            steppedContextLineno := con lineNumber.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6116
        ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6117
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6118
        skipLineNr := lineNrOrNilOrMinus1.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6119
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6120
        lineNrOrNilOrMinus1 == -1 ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6121
            steppedContextLineno := skipLineNr := nil.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6122
        ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6123
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6124
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6125
            steppedContext := contextArray at:1.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6126
            stepHow := #nextIn.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6127
        ] ifFalse:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6128
            stepHow == #nextOut ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6129
                steppedContext := con home.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6130
            ] ifFalse:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6131
                steppedContext := con.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6132
            ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6133
        ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6134
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6135
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6136
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  6137
"/ ' step con:' print. (ObjectMemory addressOf:steppedContext) printHex. ' ' print. steppedContext printCR.
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  6138
16961
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6139
        "
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6140
         if we step in a wrapped method,
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6141
         prepare to skip the prolog ...
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6142
        "
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6143
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6144
        inWrap := false.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6145
        method := con method.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6146
        (method notNil
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6147
        and:[method isWrapped
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6148
        and:[method originalMethod ~~ method]]) ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6149
            inWrap := true
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6150
        ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6151
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6152
        lineNrOrNilOrMinus1 == #return ifTrue:[
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6153
            Processor activeProcess forceInterruptOnReturnOf:con.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6154
        ].
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6155
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6156
        con := nil.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6157
        bigStep := true.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6158
        haveControl := false.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6159
        exitAction := #step.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6160
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6161
        "exit private event-loop"
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6162
        catchBlock value.
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6163
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6164
        "/ not reached
64ff32c6309b #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16960
diff changeset
  6165
        'DebugView [warning]: step failed' errorPrintCR.
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6166
        stepButton turnOff. stepInButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6167
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  6168
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6169
    "Modified: / 25-11-2016 / 13:38:40 / cg"
17526
d7cc796d0ea5 #DOCUMENTATION by mawalch
mawalch
parents: 17522
diff changeset
  6170
    "Modified (comment): / 07-06-2017 / 16:36:58 / mawalch"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6171
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6172
13351
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  6173
doStepAfterDelay
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  6174
    Delay waitForSeconds:5.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  6175
    self doStep.
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  6176
!
2f01d5b41262 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13350
diff changeset
  6177
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6178
doStepIn
18158
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6179
    "step into the just called method;
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6180
     same as selecting one above the current selected context
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6181
     and then doing a step"
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6182
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6183
    |con idx|
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6184
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6185
    con := selectedContext.
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6186
    idx := contextArray identityIndexOf:con.
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6187
    (idx <= 1) ifTrue:[
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6188
        self doSend.
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6189
    ].    
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6190
    self selectContextWithIndex:idx-1.
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6191
    self doStep
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6192
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6193
    "Modified: / 07-03-1997 / 18:46:49 / cg"
5afedb870fe0 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18132
diff changeset
  6194
    "Modified: / 27-05-2018 / 11:46:19 / Claus Gittinger"
18132
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6195
!
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6196
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6197
doStepIn:lineNrOrNilOrMinus1
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6198
    "common helper for step, skip & next.
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6199
     Arrange for single-stepping until we pass lineNr (if nonNil)
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6200
     or to next line (if nil) or to next send (if -1)"
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6201
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6202
    stepHow := #stepIn.
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6203
    self doStep:lineNrOrNilOrMinus1
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6204
!
0f8c19508a5e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18127
diff changeset
  6205
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6206
doStop
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
  6207
    "stop the process (if it's running, otherwise this is a no-op)"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6208
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6209
    inspecting ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6210
        device hasColors ifTrue:[
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  6211
            continueButton foregroundColor:Color darkGreen darkened.
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6212
        ].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6213
        continueButton label:(resources string:'Continue').
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6214
        continueButton action:[self doContinue].
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6215
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6216
        self processPerform:#stop.
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6217
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  6218
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6219
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6220
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
  6221
    "Modified: / 20-10-1996 / 18:30:48 / cg"
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
  6222
    "Modified (comment): / 13-02-2017 / 19:59:30 / cg"
18679
ae755e36eed3 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18621
diff changeset
  6223
    "Modified: / 13-03-2019 / 21:10:35 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6224
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6225
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6226
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6227
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6228
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6229
    (self checkIfCodeIsReallyModifiedAndConfirmWith:'Code was modified.\\Terminate anyway ?')
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6230
    ifFalse:[ ^ self ].
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6231
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6232
    inspecting ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6233
        self processPerform:#terminate.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6234
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6235
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6236
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  6237
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6238
    haveControl := false.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6239
    exitAction := #terminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6240
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6241
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6242
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6243
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6244
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6245
    inspecting ifFalse:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6246
        'DebugView [warning]: terminate failed' errorPrintCR.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6247
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6248
            Debugger newDebugger.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6249
            Processor activeProcess terminate.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6250
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6251
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6252
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  6253
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6254
    "Modified: / 25-11-2016 / 13:38:51 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6255
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6256
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6257
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6258
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6259
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6260
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6261
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6262
"/    |v b|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6263
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6264
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6265
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6266
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6267
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6268
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6269
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6270
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6271
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6272
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6273
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6274
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6275
"/            traceView := nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6276
"/        ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6277
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6278
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6279
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6280
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6281
"/    v realize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6282
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6283
"/    tracing := true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6284
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6285
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6286
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6287
    "tracestep - not implemented yet"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6288
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6289
    canContinue ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6290
        tracing := true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6291
        self doStep
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6292
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6293
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6294
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6295
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6296
    "exit from menu: immediate exit from smalltalk"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6297
14129
cb9000f8e03d class: DebugView
Stefan Vogel <sv@exept.de>
parents: 14122
diff changeset
  6298
    OperatingSystem exit:10
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6299
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6300
18282
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6301
findActiveHandler
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6302
    "find out active handlers, let user choose one of them,
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6303
     and select the context"
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6304
     
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6305
    |con handledExceptionsAndContexts|
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6306
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6307
    handledExceptionsAndContexts := OrderedDictionary new.
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6308
    (con := self selectedContext) isNil ifTrue:[
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6309
        con := contextArray at:1
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6310
    ].
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6311
    [con notNil] whileTrue:[
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6312
        con isHandleContext ifTrue:[
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6313
            (con selector startsWith:'on:') ifTrue:[
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6314
                handledExceptionsAndContexts at:(con argAt:1) ifAbsentPut:con
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6315
            ].    
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6316
            (con selector = 'handle:do:') ifTrue:[
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6317
                handledExceptionsAndContexts at:(con receiver) ifAbsentPut:con
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6318
            ].    
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6319
        ].
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6320
        con := con sender.
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6321
    ].    
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6322
        
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6323
    con := Dialog
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6324
                choose:'Exceptions handled in call chain:'
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6325
                fromList:(handledExceptionsAndContexts 
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6326
                            keysAndValuesCollect:[:ex :con | ex printString])
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6327
                values:(handledExceptionsAndContexts           
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6328
                            keysAndValuesCollect:[:ex :con | con])
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6329
                lines:25
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6330
                title:'Choose handled Exception class'.
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6331
    handledExceptionsAndContexts := nil.
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6332
    con isNil ifTrue:[^ self].
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6333
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6334
    self selectContext:con.
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6335
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6336
    "Created: / 24-07-2018 / 23:00:24 / Claus Gittinger"
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6337
!
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6338
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6339
findContextForWhich:aBlock thenDo:additionalAction
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6340
    |con|
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6341
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6342
    con := self selectedContext.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6343
    con isNil ifTrue:[^ self].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6344
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6345
    con := con sender.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6346
    [con notNil] whileTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6347
        (aBlock value:con) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6348
            (self selectContext:con) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6349
                additionalAction value:con.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6350
                ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6351
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6352
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6353
        con := con sender.
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6354
    ].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6355
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6356
    Dialog information:'None found'.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6357
!
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6358
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6359
findContextWithStringInSource
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6360
    |stringToSearch source|
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6361
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6362
    stringToSearch := Dialog request:'Search what:'.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6363
    stringToSearch isEmptyOrNil ifTrue:[^ self].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6364
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6365
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6366
        findContextForWhich:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6367
            con method notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6368
            and:[ (source := con method source) notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6369
            and:[ (source includesString:stringToSearch) ]]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6370
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6371
        thenDo:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6372
            codeView searchFwd:stringToSearch.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6373
        ]
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6374
!
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6375
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6376
findContextWithValueInVariable
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6377
    |valueStringToSearch|
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6378
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6379
    valueStringToSearch := Dialog request:'Search for a local value whith printString containing:'.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6380
    valueStringToSearch isEmptyOrNil ifTrue:[^ self].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6381
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6382
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6383
        findContextForWhich:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6384
            con argsAndVars contains:[:val | val printString asLowercase includesString: valueStringToSearch asLowercase]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6385
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6386
        thenDo:[:con | ]
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6387
!
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6388
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6389
findHandlerFor
18282
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6390
    "let user choose an exception class;
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6391
     find and select the handling context for it"
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6392
     
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6393
    |exClass con|
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6394
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6395
    (con := self selectedContext) isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6396
        con := contextArray at:1
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6397
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6398
    con sender isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6399
        self information:'Context has already returned'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6400
        ^ self
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6401
    ].
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6402
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6403
    exClass := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6404
                choose:'Exception class:'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6405
                fromList:(GenericException withAllSubclasses copyAsOrderedCollection sort:[:a :b | a name < b name])
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6406
                lines:25
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6407
                title:'Choose Exception class'.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  6408
    exClass isNil ifTrue:[^ self].
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6409
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6410
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6411
        findContextForWhich:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6412
            con isHandleContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6413
            and:[ (con receiver handlerForSignal:exClass context:con originator:nil) notNil ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6414
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6415
        thenDo:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6416
            self selectContext:con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6417
        ]
18282
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6418
c9d7d76d5a75 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18277
diff changeset
  6419
    "Modified (comment): / 24-07-2018 / 22:39:12 / Claus Gittinger"
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6420
!
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6421
15255
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6422
findHomeContext
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6423
    |con home|
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6424
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6425
    (con := self selectedContext) isNil ifTrue:[
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
  6426
        self beepInEditor.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6427
        ^ self.
15255
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6428
    ].
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6429
    (home := con home) isNil ifTrue:[
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
  6430
        self beepInEditor.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6431
        ^ self.
15255
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6432
    ].
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6433
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6434
    "/ still have to find it - home could be elsewhere (another process)
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6435
    "/ (i.e. cannot simply select it)
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6436
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6437
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6438
        findContextForWhich:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6439
            con == home
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6440
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6441
        thenDo:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6442
            self selectContext:con.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6443
        ]
15255
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6444
!
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  6445
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6446
findNextExceptionHandlerContext
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6447
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6448
        findContextForWhich:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6449
            con isHandleContext
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6450
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6451
        thenDo:[:con |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6452
            self selectContext:con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6453
        ]
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6454
!
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6455
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6456
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6457
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6458
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6459
    |con|
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6460
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6461
    (con := self selectedContext) notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6462
        con inspect.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6463
    ]
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6464
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6465
    "Modified: / 17-07-2012 / 12:52:34 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6466
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6467
15247
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6468
inspectContextsMethod
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6469
    "launch an inspector on the currently selected context's method"
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6470
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6471
    |con|
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6472
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6473
    (con := self selectedContext) notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6474
        con method inspect.
15247
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6475
    ]
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6476
!
cdd1a5e76c7d class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15084
diff changeset
  6477
17106
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6478
inspectProcessesApplication
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6479
    "inspect the application (of the process, if it is a GUI process)"
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6480
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6481
    |app|
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6482
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6483
    (app := self processesApplication) notNil ifTrue:[
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6484
        app inspect.
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6485
    ].
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6486
!
c1eb8f5dc37c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17058
diff changeset
  6487
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6488
inspectWidgetHierarchy
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6489
    |rcvr view app|
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6490
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6491
    Tools::ViewTreeInspectorApplication isNil ifTrue:[
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6492
        Dialog warn:'Missing class: Tools::ViewTreeInspectorApplication'.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6493
        ^ self.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6494
    ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6495
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6496
    selectedContext notNil ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6497
        rcvr := selectedContext receiver.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6498
        rcvr isView ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6499
            view := rcvr
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6500
        ] ifFalse:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6501
            (rcvr isKindOf:ApplicationModel) ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6502
                view := rcvr window
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6503
            ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6504
        ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6505
    ].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6506
    view isNil ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6507
        (app := self processesApplication) notNil ifTrue:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6508
            view := app window
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6509
        ] ifFalse:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6510
            Dialog warn:'Please select a context with the app as receiver'.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6511
            ^ self.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6512
        ]
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6513
    ].
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6514
    Tools::ViewTreeInspectorApplication openOn:view
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6515
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  6516
    "Modified: / 25-11-2016 / 13:21:45 / cg"
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6517
!
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6518
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6519
middleButtonMenu
18601
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  6520
    "old leftover code for contextList's middleButtonMenu"
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  6521
    
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6522
    <resource: #programMenu >
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6523
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6524
    |items m nameOfExecutable|
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6525
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6526
    exclusive ifTrue:[
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6527
        items := #(
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6528
                    ('Show More WalkBack'               showMore                )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6529
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6530
                    ('Add Breakpoint'                   addBreakpoint           )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6531
                    ('Remove Breakpoint'                removeBreakpoint        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6532
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints   )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6533
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6534
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6535
    ] ifFalse:[
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6536
        items := #(
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6537
                    ('Show More WalkBack'               showMore                )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6538
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6539
                    ('Skip'                             skip                    )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6540
                    ('Step Out'                         skipForReturn           )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6541
                    ('Skip until Entering...'           skipUntilEntering       )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6542
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6543
"
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6544
                    ('Continue'                         doContinue              )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6545
                    ('Terminate'                        doTerminate             )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6546
                    ('Abort'                            doAbort                 )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6547
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6548
                    ('Step'                             doStep                  )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6549
                    ('Send'                             doSend                  )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6550
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6551
                    ('Return'                           doReturn                )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6552
                    ('Restart'                          doRestart               )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6553
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6554
"
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6555
                    ('Add Breakpoint'                   addBreakpoint           )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6556
                    ('Remove Breakpoint'                removeBreakpoint        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6557
                    ('Remove all Break- & Tracepoints'  removeAllBreakpoints    )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6558
                ).
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6559
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6560
"/        self allowBreakPointsInDebugger ifFalse:[
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6561
"/            items := items , #(
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6562
"/                        ('Allow Breakpoints & halt in Debugger'      doNotIgnoreBreakpoints  )
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6563
"/                    ).
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6564
"/        ] ifTrue:[
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6565
"/            items := items , #(
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6566
"/                        ('Ignore Breakpoints & halt in Debugger'     doIgnoreBreakpoints  )
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6567
"/                    ).
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  6568
"/        ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6569
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6570
        items := items , #(
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6571
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6572
                    ('Browse Implementing Class'      browseImplementingClass )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6573
                    ('Browse Receiver''s Class'             browseReceiversClass    )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6574
                    ('Browse Blocks''s Home'                browseBlocksHome    )
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6575
"/                    ('Browse Receivers Class Hierarchy'   browseClassHierarchy    )
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6576
"/                    ('Browse Receivers Full Protocol'     browseFullClassProtocol )
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6577
                    ('Implementors'                     browseImplementors      )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6578
                    ('Implementors Of...'               browseImplementorsOf    )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6579
                    ('Senders'                          browseSenders           )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6580
                    ('Senders Of...'                    browseSendersOf         )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6581
                    ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6582
                    ('Inspect Context'                  inspectContext          )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6583
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6584
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6585
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6586
    items := items , #(
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6587
                ('Copy WalkBack Text'               copyWalkbackText        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6588
                ('-'                                                        )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6589
                ('Hard Terminate (Danger)'          quickTerminate          )
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6590
                ('='                                                        )).
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6591
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6592
    nameOfExecutable := OperatingSystem nameOfSTXExecutable asFilename withoutSuffix baseName.
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6593
    nameOfExecutable = 'stx' ifTrue:[ nameOfExecutable := 'Smalltalk' ].
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6594
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6595
    items := items , {
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6596
        { 'Exit %1 (Danger: No Confirmation)' bindWith:nameOfExecutable. #exit                 }}.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6597
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6598
    m := PopUpMenu
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6599
                itemList:items
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6600
                resources:resources
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6601
                receiver:self
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6602
                for:contextView.
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6603
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6604
    inspecting ifTrue:[
17177
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6605
        m notNil ifTrue:[
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6606
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6607
                           browseClassHierarchy browseFullClassProtocol
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6608
                           browseImplementors browseSenders browseBlocksHome inspectContext skip doStepOut).
8d4c9b700726 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17176
diff changeset
  6609
        ].
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6610
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6611
    self updateMenuItems.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6612
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6613
    ^ m.
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  6614
13210
214639c7834e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13197
diff changeset
  6615
    "Modified: / 22-07-2013 / 15:30:05 / cg"
18601
370b48d708b1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18598
diff changeset
  6616
    "Modified (comment): / 18-02-2019 / 18:49:35 / Claus Gittinger"
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6617
!
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  6618
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6619
notShowingDenseWalkbackHolder
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6620
    ^ BlockValue forLogicalNot: self showingDenseWalkbackHolder.
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6621
!
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6622
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6623
notShowingSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6624
    ^ hideSupportCode == true.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6625
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6626
    "Created: / 10-06-2012 / 21:27:24 / cg"
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6627
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6628
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6629
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6630
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6631
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  6632
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  6633
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  6634
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6635
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6636
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6637
openSettingsDialog
14559
1de1084ebbd9 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14532
diff changeset
  6638
    |settingsList|
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6639
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6640
    settingsList :=
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6641
        #(
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6642
           #('Debugger'       #'AbstractSettingsApplication::DebuggerSettingsAppl'            )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6643
           #('Editor'         #'AbstractSettingsApplication::EditSettingsAppl'                )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6644
           #('Syntax Color'   #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6645
           #('Code Format'    #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6646
        ).
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6647
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  6648
    SettingsDialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6649
        openWithList:settingsList
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6650
        label:(resources string:'Debugger Settings').
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6651
!
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6652
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6653
processesApplication
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6654
    "if the debugged process is a GUI process,
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6655
     AND it has an applicaiton, return it.
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6656
     Otherwise, return nil"
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6657
14430
c5408e02eebd class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14356
diff changeset
  6658
    |p wgs app nonModalWGs|
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6659
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6660
    p := inspectedProcess ? Processor activeProcess.
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6661
    (p notNil and:[p isGUIProcess]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6662
        wgs := WindowGroup scheduledWindowGroups select:[:wg | wg process == p].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6663
        nonModalWGs := wgs reject:[:wg | wg isModal].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6664
        nonModalWGs notEmpty ifTrue:[^ nonModalWGs first application].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6665
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6666
        wgs do:[:wg |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6667
            |wgi|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6668
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6669
            wgi := wg.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6670
            [wgi notNil] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6671
                (app := wgi application) notNil ifTrue:[^ app].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6672
                wgi isModal ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6673
                    wgi := wgi previousGroup
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6674
                ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6675
                    wgi := nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6676
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6677
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6678
        ]
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6679
    ].
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6680
    ^ nil
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6681
!
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  6682
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6683
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6684
    "quick terminate - the process will get no chance for cleanup actions"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6685
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6686
    inspecting ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6687
        self processPerform:#terminateNoSignal.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6688
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6689
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6690
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  6691
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6692
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6693
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6694
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6695
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  6696
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6697
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6698
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6699
    inspecting ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6700
        'DebugView [warning]: quick terminate failed' errorPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6701
        (self confirm:'Regular quick terminate failed - do it the hard way ?') ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6702
            Debugger newDebugger.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6703
            Processor activeProcess terminateNoSignal.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6704
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6705
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  6706
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  6707
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  6708
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6709
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6710
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6711
rememberCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6712
    "remember the callchain in a classvar.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6713
     When entered the next time, highlight already entered contexts.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6714
     This makes it possible to identitfy the caller as the first common context
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6715
     along the chain (i.e. the context which is responsible for the debugger to be entered)"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6716
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6717
    RememberedCallChain := contextArray copy
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6718
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6719
    "Created: / 07-03-2012 / 23:07:07 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6720
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6721
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6722
selectContext:aContext
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6723
    |idx|
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6724
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6725
    idx := contextArray identityIndexOf:aContext.
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6726
    idx == 0 ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6727
        "/ some contexts hidden?
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6728
        (self showingDenseWalkback or:[self showingSupportCode not]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6729
            Dialog information:'Context is hidden - disabling the "hideSupportCode" option (see view menu)'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6730
            self showFullWalkback.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6731
            self showingDenseWalkback:false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6732
            self showingSupportCode:true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6733
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6734
        idx := contextArray identityIndexOf:aContext.
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6735
    ].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6736
    idx ~~ 0 ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6737
        self selectContextWithIndex:idx.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6738
        ^ true.
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6739
    ].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6740
    ^ false
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6741
!
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  6742
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6743
selectedContext
15960
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6744
    |selIdx|
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6745
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6746
    (selIdx := contextView selection) notNil ifTrue:[
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6747
        (contextView selectionValue startsWith:'**') ifFalse:[
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6748
            ^ (contextArray at:selIdx).
196e6963974c #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 15857
diff changeset
  6749
        ]
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6750
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6751
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6752
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6753
    "Created: / 17-07-2012 / 12:52:10 / cg"
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6754
!
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  6755
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6756
showFullWalkback
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6757
    "double the number of contexts shown"
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6758
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6759
    contextArray notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6760
        nChainShown := 9999.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6761
        self redisplayBacktrace.
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6762
    ]
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6763
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6764
    "Created: / 23-07-2012 / 12:24:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6765
!
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  6766
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6767
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6768
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6769
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6770
    contextArray notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6771
        nChainShown := nChainShown * 2.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6772
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6773
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  6774
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6775
    "Modified: / 17.11.2001 / 20:14:31 / cg"
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6776
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6777
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6778
showSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6779
    hideSupportCode := false.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6780
    self redisplayBacktrace.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6781
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6782
    "Created: / 10-06-2012 / 21:27:53 / cg"
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6783
!
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6784
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6785
showingDenseWalkback
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6786
    ^ self verboseBacktraceHolder value not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6787
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6788
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6789
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6790
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6791
showingDenseWalkback:aBoolean
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6792
    self verboseBacktraceHolder value:aBoolean not.
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6793
    self redisplayBacktrace.
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6794
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6795
    "Created: / 27-07-2012 / 14:58:00 / cg"
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6796
!
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6797
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6798
showingDenseWalkbackHolder
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6799
    ^ BlockValue forLogicalNot:self verboseBacktraceHolder
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6800
!
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6801
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6802
showingSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6803
    ^ hideSupportCode == false.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6804
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6805
    "Created: / 10-06-2012 / 21:28:05 / cg"
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6806
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6807
11836
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6808
showingSupportCode:aBoolean
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  6809
    "/ now only one flag!!
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  6810
    self showingDenseWalkback:(aBoolean not).
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  6811
    
11836
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6812
    hideSupportCode := aBoolean not.
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6813
    self redisplayBacktrace.
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6814
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6815
    "Created: / 27-07-2012 / 14:58:00 / cg"
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  6816
    "Modified: / 26-06-2018 / 19:56:44 / Claus Gittinger"
11836
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6817
!
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  6818
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6819
showingVerboseWalkback
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  6820
    ^ self verboseBacktraceHolder value
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6821
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6822
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6823
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6824
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6825
sizeChanged:how
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6826
    super sizeChanged:how.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6827
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6828
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6829
    "Created: / 10-11-2010 / 09:08:41 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6830
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6831
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6832
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6833
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6834
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  6835
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6836
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  6837
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  6838
    "Modified: 3.3.1997 / 20:56:23 / cg"
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6839
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6840
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6841
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6842
    "skip until the selected context is left."
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6843
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  6844
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6845
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  6846
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  6847
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6848
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6849
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6850
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6851
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6852
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6853
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6854
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6855
    selector := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6856
                request:'Skip until entering what (matchpattern):'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6857
                initialAnswer:self goodSkipUntilSelector.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6858
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6859
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6860
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6861
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6862
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6863
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  6864
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6865
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6866
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6867
toggleShowSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6868
    hideSupportCode ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6869
        self showSupportCode
11645
4f39a925956d changed: #toggleShowSupportCode
Stefan Vogel <sv@exept.de>
parents: 11636
diff changeset
  6870
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6871
        self hideSupportCode
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6872
    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6873
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6874
    "Modified: / 17-11-2001 / 20:07:45 / cg"
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6875
    "Created: / 10-06-2012 / 21:28:17 / cg"
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6876
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6877
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6878
toggleVerboseWalkback
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6879
    self showingDenseWalkback:(self showingDenseWalkback not)
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6880
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6881
    "Modified: / 27-07-2012 / 15:00:15 / cg"
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6882
!
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6883
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6884
updateMenuItems
13408
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  6885
    "enable/disable some menu items, depending on the current selected context"
a29a1a5b7013 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13398
diff changeset
  6886
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6887
    |m mthd cls mCls rCls|
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6888
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6889
    m := contextView middleButtonMenu.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6890
    m notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6891
        m disable:#removeBreakpoint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6892
        m disable:#addBreakpoint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6893
        canShowMore ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6894
            m disable:#showMore
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6895
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6896
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6897
        selectedContext notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6898
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6899
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6900
            mthd := selectedContext method.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6901
            mthd notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6902
                cls := mCls := mthd containingClass.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6903
                mthd isBreakpointed ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6904
                    m enable:#removeBreakpoint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6905
                ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6906
                    m enable:#addBreakpoint.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6907
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6908
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6909
            (selectedContext isBlockContext and:[selectedContext home isNil]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6910
                "/ a cheap block's context
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6911
            ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6912
                rCls := selectedContext receiver class.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6913
                cls isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6914
                    cls := rCls
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6915
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6916
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6917
            cls notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6918
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6919
                rCls == mCls ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6920
                    m disable:#browseReceiversClass
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6921
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6922
                mCls isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6923
                    m disable:#browseImplementingClass
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6924
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6925
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6926
            ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6927
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6928
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6929
            mthd notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6930
                m enableAll:#(browseImplementingClass).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6931
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6932
            selectedContext isCheapBlockContext ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6933
                m disableAll:#(browseReceiversClass).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6934
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6935
            selectedContext receiver isBlock ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6936
                m enableAll:#(browseBlocksHome).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6937
            ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6938
                m disableAll:#(browseBlocksHome).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6939
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6940
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6941
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6942
                           browseBlocksHome browseFullClassProtocol).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6943
        ]
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6944
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6945
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  6946
    "Modified: / 19-07-2012 / 11:53:30 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6947
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6948
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6949
!DebugView methodsFor:'menu & button actions-breakpoints'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6950
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6951
addBreakpoint
18592
9f291f8e0ba7 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18583
diff changeset
  6952
    "add a breakpoint on the selected context's method - if any"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6953
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6954
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6955
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6956
    selectedContext isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6957
        ^ self showError:'** select a context first **'
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6958
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6959
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6960
        ^ self
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6961
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6962
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6963
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6964
    implementorClass notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6965
        method := implementorClass compiledMethodAt:selectedContext selector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6966
        (method notNil and:[method isBreakpointed not]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6967
            method setBreakPoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  6968
        ]
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6969
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6970
    contextView middleButtonMenu disable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6971
    contextView middleButtonMenu enable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6972
18592
9f291f8e0ba7 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18583
diff changeset
  6973
    "Modified: / 13-01-1998 / 00:24:47 / cg"
9f291f8e0ba7 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18583
diff changeset
  6974
    "Modified (comment): / 14-02-2019 / 16:48:28 / Claus Gittinger"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6975
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6976
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6977
allowBreakPointsInDebugger
18581
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  6978
    ^ self ignoreBreakpoints not
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  6979
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  6980
    "Modified: / 10-02-2019 / 12:47:52 / Claus Gittinger"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6981
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6982
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6983
allowBreakPointsInDebugger:aBoolean
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6984
    ignoreBreakpoints := aBoolean not.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6985
    self initializeMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6986
    self initializeContextViewsMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6987
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6988
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6989
breakPointMenuSpec
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6990
    |spec|
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6991
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6992
    LastIgnoreHaltDuration notNil ifTrue:[
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6993
        spec := self class breakPointMenuSpec.
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6994
        spec := spec recursiveCollect:[:el |
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6995
            el = 'For Another Timeduration' ifTrue:[
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6996
                (resources string:'For Another %1' with:LastIgnoreHaltDuration)
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6997
            ] ifFalse:[
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6998
                el
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  6999
            ]        
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7000
        ].
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7001
    ].
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7002
    ^ spec.
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7003
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7004
    "Created: / 09-11-2018 / 20:45:08 / Claus Gittinger"
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7005
!
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7006
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7007
doIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7008
    self allowBreakPointsInDebugger:false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7009
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7010
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7011
doNotIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7012
    self allowBreakPointsInDebugger:true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7013
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7014
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7015
ignoreAllHaltsForCurrentProcess
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7016
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7017
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7018
        orThisReceiverClass:false orCurrentProcess:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7019
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7020
        forAll:true.
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7021
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7022
    "Created: / 27-01-2012 / 11:32:14 / cg"
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7023
!
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7024
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7025
ignoreAllHaltsForThisReceiverClass
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7026
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7027
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7028
        orThisReceiverClass:true orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7029
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7030
        forAll:true.
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7031
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7032
    "Created: / 27-01-2012 / 11:32:14 / cg"
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7033
!
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7034
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7035
ignoreAllHaltsForever
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7036
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7037
        addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7038
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7039
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7040
        forAll:true.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7041
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7042
    "Created: / 08-05-2011 / 10:19:56 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7043
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7044
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7045
ignoreAllHaltsIfCalledFromMethod:aMethod
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7046
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7047
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7048
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7049
        orIfCalledFromMethod:aMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7050
        forAll:true.
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7051
!
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7052
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7053
ignoreAllHaltsUntilShiftKeyIsPressed
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7054
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7055
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7056
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7057
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7058
        forAll:true.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7059
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7060
    "Created: / 27-01-2012 / 11:32:14 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7061
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7062
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7063
ignoreBreakpointsWithThisParameterForever
11370
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  7064
    Object disableBreakPoint:breakPointParameter.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  7065
    "/ self addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false forAll:false.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  7066
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7067
    "Created: / 06-03-2012 / 12:35:48 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7068
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7069
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7070
ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7071
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7072
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7073
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7074
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7075
        forAll:false.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7076
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7077
    "Created: / 06-03-2012 / 12:35:22 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7078
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7079
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7080
ignoreErrorForever
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7081
    self
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7082
        addIgnoredErrorForCount:-1 orTimeDuration:nil orUntilShiftKey:false
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7083
        orThisReceiverClass:false orCurrentProcess:false
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7084
        orIfCalledFromMethod:nil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7085
        forAll:false.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7086
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7087
    "Created: / 27-02-2019 / 12:40:38 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7088
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7089
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7090
ignoreHaltForCurrentProcess
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7091
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7092
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7093
        orThisReceiverClass:false orCurrentProcess:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7094
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7095
        forAll:false.
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7096
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7097
    "Created: / 27-01-2012 / 11:32:14 / cg"
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7098
!
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7099
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7100
ignoreHaltForThisReceiverClass
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7101
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7102
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7103
        orThisReceiverClass:true orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7104
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7105
        forAll:false.
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7106
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7107
    "Created: / 27-01-2012 / 11:32:14 / cg"
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7108
!
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  7109
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7110
ignoreHaltForever
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7111
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7112
        addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7113
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7114
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7115
        forAll:false.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7116
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7117
    "Modified: / 27-01-2012 / 11:31:37 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7118
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7119
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7120
ignoreHaltIfCalledFromMethod:aMethod
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7121
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7122
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7123
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7124
        orIfCalledFromMethod:aMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7125
        forAll:false.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7126
!
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7127
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7128
ignoreHaltUntilAnotherTimeDurationElapsed
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7129
    self
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7130
        addIgnoredHaltForCount:nil orTimeDuration:LastIgnoreHaltDuration orUntilShiftKey:false
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7131
        orThisReceiverClass:false orCurrentProcess:false
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7132
        orIfCalledFromMethod:nil
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7133
        forAll:false.
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7134
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7135
    "Created: / 09-11-2018 / 20:40:17 / Claus Gittinger"
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7136
!
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  7137
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7138
ignoreHaltUntilShiftKeyIsPressed
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7139
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7140
        addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7141
        orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7142
        orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7143
        forAll:false.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7144
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7145
    "Created: / 27-01-2012 / 11:36:54 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7146
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7147
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7148
menuForIgnoreAllBreakpointsIfCalledFromAnyOf
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7149
    <resource: #programMenu >
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7150
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7151
    ^ self menuForIgnoreBreakpointIfCalledFromAnyOfForAll:true
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7152
!
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7153
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7154
menuForIgnoreAllErrorsIfCalledFromAnyOf
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7155
    <resource: #programMenu >
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7156
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7157
    ^ self menuForIgnoreErrorIfCalledFromAnyOfForAll:true
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7158
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7159
    "Created: / 27-02-2019 / 12:38:59 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7160
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7161
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7162
menuForIgnoreBreakpointIfCalledFromAnyOf
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7163
    <resource: #programMenu >
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7164
14680
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7165
    ^ self menuForIgnoreBreakpointIfCalledFromAnyOfForAll:false
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7166
!
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7167
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7168
menuForIgnoreBreakpointIfCalledFromAnyOfForAll:forAllHaltsBoolean
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7169
    <resource: #programMenu >
858e67cc7b81 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14676
diff changeset
  7170
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7171
    |m count already|
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7172
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7173
    m := Menu new.
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7174
    count := 0.
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7175
    already := IdentitySet new.
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7176
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7177
    contextArray do:[:con |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7178
        |mthd cls sel|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7179
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7180
        mthd := con method.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7181
        mthd notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7182
            mthd isWrapped ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7183
                (already includes:already) ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7184
                    already add:mthd.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7185
                    m addItem:(MenuItem
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7186
                                label: (mthd whoString)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7187
                                itemValue: [ forAllHaltsBoolean
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7188
                                                ifTrue:[self ignoreHaltIfCalledFromMethod:mthd]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7189
                                                ifFalse:[self ignoreAllHaltsIfCalledFromMethod:mthd]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7190
                                           ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7191
                                translateLabel: false).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7192
                    count := count + 1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7193
                    (count > 20) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7194
                        ^ m
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7195
                    ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7196
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7197
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7198
        ]
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7199
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7200
    ^ m
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7201
!
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  7202
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7203
menuForIgnoreErrorIfCalledFromAnyOf
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7204
    <resource: #programMenu >
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7205
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7206
    ^ self menuForIgnoreErrorIfCalledFromAnyOfForAll:false
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7207
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7208
    "Created: / 27-02-2019 / 12:39:12 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7209
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7210
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7211
menuForIgnoreErrorIfCalledFromAnyOfForAll:forAllHaltsBoolean
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7212
    <resource: #programMenu >
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7213
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7214
    |m count already|
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7215
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7216
    m := Menu new.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7217
    count := 0.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7218
    already := IdentitySet new.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7219
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7220
    contextArray do:[:con |
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7221
        |mthd cls sel|
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7222
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7223
        mthd := con method.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7224
        mthd notNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7225
            mthd isWrapped ifFalse:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7226
                (already includes:already) ifFalse:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7227
                    already add:mthd.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7228
                    m addItem:(MenuItem
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7229
                                label: (mthd whoString)
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7230
                                itemValue: [ forAllHaltsBoolean
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7231
                                                ifTrue:[self ignoreErrorIfCalledFromMethod:mthd]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7232
                                                ifFalse:[self ignoreAllErrorsIfCalledFromMethod:mthd]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7233
                                           ]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7234
                                translateLabel: false).
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7235
                    count := count + 1.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7236
                    (count > 20) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7237
                        ^ m
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7238
                    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7239
                ]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7240
            ]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7241
        ]
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7242
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7243
    ^ m
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7244
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7245
    "Created: / 27-02-2019 / 12:39:36 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7246
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7247
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7248
openBreakPointBrowser
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7249
    Tools::BreakpointBrowser open
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7250
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7251
    "Created: / 27-10-2010 / 12:52:49 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7252
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7253
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7254
openIgnoreAllHaltsUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7255
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7256
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7257
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7258
        answer := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7259
                    request:(resources string:'How long should all halts/breakpoints be ignored [smh] ?')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7260
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7261
        answer isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7262
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7263
        dT := TimeDuration readFrom:answer onError:[ nil ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7264
        dT notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7265
            LastIgnoreHaltDuration := dT.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7266
            self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7267
                addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7268
                orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7269
                orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7270
                forAll:true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7271
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7272
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7273
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7274
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7275
    "Created: / 08-05-2011 / 10:19:20 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7276
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7277
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7278
openIgnoreBreakpointsWithThisParameterNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7279
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7280
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7281
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7282
        answer := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7283
                    request:(resources
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7284
                                string:'How often should breakpoints with parameter "%1" be ignored ?'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7285
                                with:breakPointParameter)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7286
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7287
        answer isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7288
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7289
        n := Integer readFrom:answer onError:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7290
        n notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7291
            LastIgnoreHaltNTimes := n.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7292
            self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7293
                addIgnoredHaltForCount:n orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7294
                orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7295
                orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7296
                forAll:false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7297
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7298
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7299
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7300
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7301
    "Modified: / 27-01-2012 / 11:31:44 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7302
    "Created: / 06-03-2012 / 12:28:51 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7303
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7304
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7305
openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7306
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7307
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7308
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7309
        answer := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7310
                    request:(resources
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7311
                                string:'How long should breakpoints with parameter "%1" be ignored (s/m/h) ?'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7312
                                with:breakPointParameter)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7313
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7314
        answer isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7315
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7316
        dT := TimeDuration readFrom:answer onError:[ nil ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7317
        dT notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7318
            LastIgnoreHaltDuration := dT.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7319
            self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7320
                addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7321
                orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7322
                orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7323
                forAll:false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7324
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7325
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7326
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7327
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7328
    "Created: / 06-03-2012 / 12:03:36 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7329
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7330
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7331
openIgnoreHaltNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7332
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7333
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7334
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7335
        answer := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7336
                    request:(resources string:'How often should this halt be ignored ?')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7337
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7338
        answer isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7339
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7340
        n := Integer readFrom:answer onError:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7341
        n notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7342
            LastIgnoreHaltNTimes := n.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7343
            self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7344
                addIgnoredHaltForCount:n orTimeDuration:nil orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7345
                orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7346
                orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7347
                forAll:false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7348
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7349
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7350
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7351
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7352
    "Modified: / 27-01-2012 / 11:31:44 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7353
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7354
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7355
openIgnoreHaltUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7356
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7357
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7358
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7359
        answer := Dialog
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7360
                    request:(resources string:'How long should this halt/breakpoint be ignored (s/m/h) ?')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7361
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7362
        answer isEmptyOrNil ifTrue:[^ self].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7363
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7364
        dT := TimeDuration readFrom:answer onError:[ nil ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7365
        dT notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7366
            LastIgnoreHaltDuration := dT.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7367
            self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7368
                addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7369
                orThisReceiverClass:false orCurrentProcess:false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7370
                orIfCalledFromMethod:nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7371
                forAll:false.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7372
            ^ self.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7373
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7374
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7375
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7376
    "Modified: / 27-01-2012 / 11:31:47 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7377
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7378
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7379
removeAllBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7380
    "remove all trace & breakpoints - if any"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7381
14532
72c1d3cae279 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14531
diff changeset
  7382
    self withExecuteCursorDo:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7383
        (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7384
            MessageTracer unwrapAllMethods
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7385
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7386
        (MethodWithBreakpoints notNil and:[MethodWithBreakpoints isLoaded]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7387
            MethodWithBreakpoints removeAllBreakpoints
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7388
        ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7389
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7390
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7391
    "Modified: / 21.5.1998 / 01:44:43 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7392
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7393
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7394
removeBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7395
    "remove breakpoint on the selected contexts method - if any"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7396
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7397
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7398
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7399
    selectedContext isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7400
        ^ self showError:'** select a context first **'
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7401
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7402
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7403
        ^ self
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7404
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7405
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7406
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7407
    implementorClass notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7408
        method := implementorClass compiledMethodAt:selectedContext selector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7409
        (method notNil and:[method isBreakpointed]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7410
            method clearBreakPoint
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7411
        ]
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7412
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7413
    contextView middleButtonMenu disable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7414
    contextView middleButtonMenu enable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7415
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7416
    "Modified: / 13.1.1998 / 00:24:47 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7417
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7418
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7419
stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7420
    self class stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7421
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7422
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7423
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7424
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  7425
abortAllIsHandled
9750
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7426
    ^ AbortAllOperationWantedQuery query
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7427
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7428
    "Modified: / 09-02-2011 / 13:53:13 / cg"
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  7429
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  7430
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7431
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7432
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7433
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7434
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7435
errorSelectors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7436
    "obsolete - please use class method"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7437
    
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7438
    ^ self class errorSelectors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7439
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7440
    "Modified (comment): / 27-02-2019 / 22:39:41 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7441
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7442
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7443
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7444
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7445
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7446
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7447
explainSelection
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7448
    |interval crsrPos|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7449
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7450
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7451
    interval isEmpty ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7452
        crsrPos := codeView characterPositionOfCursor.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7453
        codeView characterUnderCursor isSeparator ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7454
            crsrPos := (crsrPos - 1) max:1
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7455
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7456
        interval := crsrPos to:crsrPos.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7457
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7458
    self
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7459
        withNodeValueAtInterval:interval
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7460
        do:[:value :description |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7461
            self showValue:value
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7462
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7463
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7464
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7465
findNodeForInterval:interval
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7466
    |source|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7467
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7468
    interval isEmpty ifTrue: [^ nil].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7469
8487
ddf59247960c slow runArray (text) operations
Claus Gittinger <cg@exept.de>
parents: 8432
diff changeset
  7470
    source := codeView contentsAsString string.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7471
"/    source := currentMethod notNil
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7472
"/                ifTrue:[ currentMethod source ]
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  7473
"/                ifFalse:[ codeView contents asString ].
8257
106d3fecbca0 findNodeForInterval: care for nonexisting source
Claus Gittinger <cg@exept.de>
parents: 8225
diff changeset
  7474
    source isNil ifTrue:[^ nil].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  7475
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7476
    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string) allowErrors:true.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7477
"/    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string).
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7478
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7479
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7480
findNodeIn:tree forInterval:interval
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7481
    <resource: #obsolete>
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7482
16933
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7483
    self obsoleteMethodWarning.
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7484
    ^ DoWhatIMeanSupport findNodeIn:tree forInterval:interval
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7485
"/    |node|
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7486
"/
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7487
"/    node := nil.
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7488
"/    tree nodesDo:[:each |
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7489
"/        (each intersectsInterval:interval) ifTrue:[
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7490
"/            (node isNil or:[node == each parent]) ifTrue:[
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7491
"/                node := each
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7492
"/            ] ifFalse:[
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7493
"/                (node parent notNil
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7494
"/                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7495
"/            ]
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7496
"/        ]
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7497
"/    ].
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
  7498
"/    ^ node
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7499
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7500
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7501
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7502
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7503
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7504
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7505
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7506
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7507
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7508
    ('change:*' match:current) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7509
        ^ 'update:*'
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7510
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7511
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7512
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  7513
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  7514
haltSelectors
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7515
    "obsolete - please use class method"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7516
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7517
    ^ self class haltSelectors
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7518
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  7519
    "Modified (comment): / 27-02-2019 / 22:39:47 / Claus Gittinger"
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  7520
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  7521
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7522
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7523
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7524
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7525
    inspectedProcess isDead ifTrue:[
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  7526
        self showTerminated.
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  7527
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7528
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7529
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7530
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7531
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7532
    "
17176
918cd46bb8fb #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17156
diff changeset
  7533
    Delay waitForSeconds:0.2.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7534
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7535
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7536
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  7537
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  7538
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  7539
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  7540
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7541
openHTMLDocument: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7542
    "open a HTMLDocumentView on anHTMLFilename"
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7543
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7544
    HTMLDocumentView openFullOnDocumentationFile: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7545
!
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  7546
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7547
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7548
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7549
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7550
    inspectedProcess isDead ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7551
        self showTerminated.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7552
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7553
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7554
    inspectedProcess perform:aMessage.
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  7555
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7556
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7557
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7558
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7559
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7560
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7561
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  7562
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7563
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  7564
    "force redisplay of the walkBack list; invoked when the
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  7565
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  7566
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7567
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7568
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7569
    contextArray notNil ifTrue:[
16065
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7570
        self withExecuteCursorDo:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7571
            oldSelection := contextView selection.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7572
            oldSelection notNil ifTrue:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7573
                oldContext := contextArray at:oldSelection ifAbsent:nil.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7574
            ].
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7575
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7576
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  7577
"/            con := contextArray at:1.
16065
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7578
            "/ force redisplay, even if same by changing the first entry
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7579
            contextArray size > 0 ifTrue:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7580
                contextArray at:1 put:nil.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7581
            ].
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7582
            self setContext:con.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7583
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7584
            oldContext isNil ifTrue:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7585
                idx := oldSelection
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7586
            ] ifFalse:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7587
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7588
            ].
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7589
            contextView setSelection:idx.
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7590
            idx notNil ifTrue:[
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7591
                self showSelection:idx
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7592
            ]
9993910b75c5 #DOCUMENTATION
Claus Gittinger <cg@exept.de>
parents: 16058
diff changeset
  7593
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7594
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7595
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  7596
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  7597
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7598
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  7599
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7600
selectedInterval
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7601
    ^ codeView selectedInterval
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7602
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7603
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7604
showError:message
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7605
    codeView contents:(resources string:message).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7606
    shown ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7607
        exclusive ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7608
            "/ consider this a kludge:
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7609
            "/ if exclusive, cannot use flash, since it suspends
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7610
            "/ (but we cannot suspend here ...)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7611
            codeView redrawInverted. self flush.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7612
            OperatingSystem millisecondDelay:200.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7613
            codeView redraw
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7614
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7615
            codeView flash
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7616
        ]
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7617
    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7618
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7619
    "Modified: / 18.11.2001 / 00:01:13 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7620
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7621
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7622
showTerminated
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7623
    self showError:'** the process has terminated **'
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7624
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7625
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7626
showValue:aValue
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7627
    infoLabelHolder value:aValue printString
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7628
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7629
    "Modified: / 28-07-2018 / 11:25:57 / Claus Gittinger"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7630
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7631
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7632
stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7633
    ^ stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7634
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7635
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7636
unstep
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7637
    stepping := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7638
    bigStep := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7639
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7640
    exitAction := nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7641
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7642
    "Modified: 22.10.1996 / 11:59:57 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7643
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7644
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7645
updateButtonsAndMenuItemsForContext:aContext
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7646
    |m|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7647
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7648
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7649
    m notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7650
        self updateMenuItems.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7651
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7652
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7653
            abortButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7654
            m enable:#doAbort.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7655
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7656
            abortButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7657
            m disable:#doAbort.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7658
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7659
        exclusive ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7660
            terminateButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7661
            m disable:#doTerminate.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7662
        ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7663
            terminateButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7664
            m enable:#doTerminate.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7665
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7666
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7667
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7668
    mayProceed == false ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7669
        continueButton disable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7670
        m notNil ifTrue:[m disable:#doContinue].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7671
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7672
        continueButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7673
        m notNil ifTrue:[m enable:#doContinue]
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7674
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7675
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7676
    foundRaisingMethod ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7677
        gotoRaisingMethodButton enable.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7678
        gotoRaisingMethodButton beVisible.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7679
    ] ifFalse:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7680
        gotoRaisingMethodButton beInvisible.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7681
    ].
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7682
    
13363
4cc837ad3854 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13362
diff changeset
  7683
    isStoppedInModalDialog ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7684
        gotoDialogOpenerButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7685
        gotoDialogOpenerButton beVisible.
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  7686
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7687
        gotoDialogOpenerButton beInvisible.
13362
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  7688
    ].
d21110a7dded class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13361
diff changeset
  7689
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  7690
    (isStoppedInModalDialog not & isStoppedInApplicationAction) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7691
        gotoApplicationActionMethodButton enable.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7692
        gotoApplicationActionMethodButton beVisible.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  7693
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7694
        gotoApplicationActionMethodButton beInvisible.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  7695
    ].
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  7696
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7697
    "Created: / 06-07-2011 / 12:24:53 / cg"
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  7698
    "Modified: / 30-11-2017 / 12:16:44 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7699
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  7700
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7701
updateContext
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7702
    |oldContext idx|
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7703
18791
d4648fa1cc9c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18786
diff changeset
  7704
    inspectedProcess isDead ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7705
        self showTerminated.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7706
        ^ self
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7707
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7708
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7709
    oldContext := selectedContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7710
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7711
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7712
            oldContext notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7713
                contextArray notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7714
                    idx := contextArray identityIndexOf:oldContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7715
                    idx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7716
                        self showSelection:idx
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7717
                    ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7718
                        codeView contents:('** context returned **')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7719
                    ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7720
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7721
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7722
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7723
    ] valueUninterruptably.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7724
18791
d4648fa1cc9c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18786
diff changeset
  7725
    "Modified: / 20-10-1996 / 18:11:24 / cg"
d4648fa1cc9c #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18786
diff changeset
  7726
    "Modified: / 29-05-2019 / 01:02:43 / Claus Gittinger"
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7727
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7728
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7729
withNodeValueAtInterval:interval do:aBlock
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7730
    "helper for tooltops and explain-selection;
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7731
     evaluate aBlock with description of what it is and its value
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7732
     (if known)"
14122
c255f0f49ce0 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14109
diff changeset
  7733
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7734
    |node definingNode nm nmBold nameSymbol
14122
c255f0f49ce0 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14109
diff changeset
  7735
     varIdx parentNode receiver con receiversNonMetaClass|
c255f0f49ce0 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14109
diff changeset
  7736
c255f0f49ce0 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14109
diff changeset
  7737
    "/ interval printCR.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7738
    Error
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7739
        handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7740
        do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7741
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7742
                node := self findNodeForInterval:interval
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7743
            ] valueWithWatchDog:[ ^ self ] afterMilliseconds:50.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7744
        ].
9314
e58b9abd145a comment/format in: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9308
diff changeset
  7745
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7746
    node isNil ifTrue:[ ^ self ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7747
    node isVariable ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7748
        "/ Transcript showCR:node.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7749
        ^ self
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  7750
    ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7751
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7752
    nm := node name.
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  7753
    nmBold := nm allBold.
8600
7b68bafada1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8595
diff changeset
  7754
    actualContext isNil ifTrue:[^ self ].
8636
fc9c77c184a8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8626
diff changeset
  7755
    actualContext methodHome isNil ifTrue:[^ self ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  7756
    receiver := actualContext methodHome receiver.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7757
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7758
    (nm = 'self') ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7759
        aBlock value:receiver value:'receiver' allBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7760
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7761
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7762
    (nm = 'super') ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7763
        aBlock value:receiver value:'receiver' allBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7764
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7765
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7766
    (nm = 'thisContext') ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7767
        aBlock value:actualContext value:'context' allBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7768
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7769
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7770
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7771
    definingNode := node whoDefines:nm.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7772
    definingNode isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7773
        (receiver class allInstVarNames includes:nm) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7774
            receiver class isMetaclass ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7775
                aBlock value:(receiver instVarNamed:nm) value:'classInstVar ',nmBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7776
            ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7777
                aBlock value:(receiver instVarNamed:nm) value:'instVar ',nmBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7778
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7779
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7780
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7781
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7782
        receiversNonMetaClass := receiver class theNonMetaclass.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7783
        (receiversNonMetaClass privateClasses contains:[:cls | cls nameWithoutPrefix = nm]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7784
            aBlock value:'' value:'private class ',nmBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7785
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7786
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7787
        (receiversNonMetaClass classVarNames includes:nm) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7788
            aBlock value:((currentMethod mclass ? receiversNonMetaClass) theNonMetaclass classVarAt:nm) value:'classVar ',nmBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7789
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7790
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7791
        receiversNonMetaClass sharedPoolNames do:[:eachPoolName |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7792
            |pool|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7793
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7794
            pool := Smalltalk at:eachPoolName.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7795
            pool isNil ifTrue:[ pool := receiversNonMetaClass topNameSpace at:eachPoolName].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7796
            (pool classVarNames includes:nm) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7797
                aBlock value:(pool classVarAt:nm) value:'poolVar ',nm allBold,' in ',eachPoolName allBold,' '.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7798
                ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7799
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7800
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7801
        nameSymbol := nm asSymbolIfInterned.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7802
        nameSymbol notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7803
            (Smalltalk includesKey:nameSymbol) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7804
                (Smalltalk at:nameSymbol) isClass ifTrue:[
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7805
                    aBlock value:(Smalltalk at:nameSymbol) value:''.
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7806
                    "/ aBlock value:''(Smalltalk at:nameSymbol) value:'class ',nmBold.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7807
                ] ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7808
                    aBlock value:(Smalltalk at:nameSymbol) value:'global ',nmBold.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7809
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7810
                ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7811
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7812
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7813
        aBlock value:'' value:'unknown'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7814
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7815
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7816
"/definingNode printCR.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7817
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7818
    definingNode isMethod ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7819
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7820
        varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7821
            Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7822
                handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7823
                do:[ aBlock value:(actualContext methodHome argAt:varIdx) value:'methodArg ',nmBold ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7824
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7825
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7826
        varIdx := definingNode temporaries findFirst:[:var | var name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7827
        varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7828
            actualContext methodHome numVars >= varIdx ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7829
                Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7830
                    handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7831
                    do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7832
                ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7833
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7834
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7835
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7836
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7837
    definingNode isBlock ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7838
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7839
        (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7840
            varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7841
                "/ am I in this block ?
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7842
                (actualContext lineNumber notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7843
                and:[ definingNode lastLineNumber notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7844
                and:[ (actualContext lineNumber
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7845
                            between:definingNode firstLineNumber
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7846
                            and:definingNode lastLineNumber)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7847
                and:[ varIdx <= actualContext numArgs ] ]])
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7848
                ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7849
                    aBlock value:(actualContext argAt:varIdx) value:'blockArg ',nmBold .
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7850
                    ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7851
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7852
                aBlock value:nmBold , ' is not in scope of selected context' value:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7853
                ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7854
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7855
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7856
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7857
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7858
    parentNode := definingNode parent.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7859
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7860
    [parentNode notNil] whileTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7861
        "/'isMethod ' print. parentNode isMethod printCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7862
        parentNode isMethod ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7863
            varIdx := parentNode temporaries findFirst:[:var | var name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7864
            varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7865
                actualContext methodHome numVars >= varIdx ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7866
                    Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7867
                        handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7868
                        do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7869
                    ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7870
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7871
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7872
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7873
        "/'isBlock ' print. parentNode isBlock printCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7874
        parentNode isBlock ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7875
            "/ we don't have any information on the inlineability
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7876
            "/ of this block here (RBParser does not know what
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7877
            "/ the compiler does).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7878
            "/ therefore, it is questionable if we can use the
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7879
            "/ context's home context here.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7880
            "/ am I in this block ?
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7881
            con := actualContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7882
            [con notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7883
            and:[ parentNode lastLineNumber notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7884
            and:[ con lineNumber notNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7885
            and:[ con lineNumber
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7886
                    between:parentNode firstLineNumber
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7887
                    and:parentNode lastLineNumber ]]]] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7888
                con := con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7889
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7890
            con notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7891
                varIdx := parentNode arguments findFirst:[:arg | arg name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7892
                varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7893
                    Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7894
                        handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7895
                        do:[ aBlock value:(con argAt:varIdx) value:'blockArg ',nmBold ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7896
                    ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7897
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7898
                varIdx := parentNode body temporaries findFirst:[:var | var name = nm].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7899
                varIdx ~~ 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7900
                    Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7901
                        handle:[:ex | ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7902
                        do:[ aBlock value:(con varAt:varIdx) value:'blockVar ',nmBold ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7903
                    ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7904
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7905
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7906
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7907
        parentNode := parentNode parent.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7908
    ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  7909
    aBlock value:nmBold , ' is not in scope of selected context' value:nil.
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  7910
9688
805ea34ba3ef changed: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9662
diff changeset
  7911
    "Modified: / 18-01-2011 / 17:57:34 / cg"
18300
5bfb159a26fa #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18282
diff changeset
  7912
    "Modified: / 28-07-2018 / 11:46:46 / Claus Gittinger"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7913
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7914
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7915
!DebugView methodsFor:'private queries'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  7916
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7917
canBrowseClassHierarchy
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7918
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7919
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7920
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7921
    ^ m notNil and:[m isEnabled:#browseClassHierarchy]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7922
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7923
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7924
canBrowseFullClassProtocol
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7925
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7926
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7927
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7928
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7929
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7930
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7931
canBrowseImplementingClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7932
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7933
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7934
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7935
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7936
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7937
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7938
canBrowseProcessesApplication
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7939
    |p|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7940
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7941
    p := inspectedProcess ? Processor activeProcess.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7942
    p isNil ifTrue:[^ false].
14430
c5408e02eebd class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14356
diff changeset
  7943
    ^ p isGUIProcess and:[self processesApplication notNil ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7944
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7945
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7946
canBrowseReceiversClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7947
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7948
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7949
    m := contextView middleButtonMenu.
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7950
    ^ m notNil 
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7951
        and:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7952
            (m isEnabled:#browseReceiversClass)
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7953
            or:[ m isEnabled:#browseImplementingClass ]
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7954
        ]
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7955
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7956
    "Modified: / 25-11-2016 / 13:25:55 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7957
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7958
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7959
canCloseAllDebuggers
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  7960
    self class allInstancesDo:[:debugger |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7961
        debugger ~~ self ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7962
            debugger busy ifTrue:[^ true].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  7963
        ]
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7964
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7965
    ^ false
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7966
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7967
    "Created: / 23-03-2012 / 12:40:18 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7968
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  7969
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7970
canDefineMethod
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7971
    ^ defineButton isVisible
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7972
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7973
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  7974
canInspectWidgetHierarchy
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  7975
    |rcvr|
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  7976
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7977
    ^ (selectedContext notNil
17129
c3f6d259e84c #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17126
diff changeset
  7978
        and:[(rcvr := selectedContext receiver) isProtoObject not 
c3f6d259e84c #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17126
diff changeset
  7979
        and:[rcvr isView or:[rcvr isKindOf: ApplicationModel]]])
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7980
    or:[
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7981
        self canBrowseProcessesApplication
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7982
    ]
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7983
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  7984
    "Modified: / 25-11-2016 / 13:17:20 / cg"
12840
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  7985
!
6ac068e01016 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12839
diff changeset
  7986
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7987
canRedefineMethodInReceiverClass
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7988
    "true if a context is selected, where an inherited method was called.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7989
     Used to enable the redefine menu option"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7990
     
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7991
    |con selector receiverClass implClass|
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7992
    
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7993
    (con := actualContext) notNil ifTrue:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7994
        (actualContext home) notNil ifTrue:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7995
            con := actualContext home 
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7996
        ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7997
        selector := con selector.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7998
        receiverClass := con receiver class.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  7999
        (receiverClass implements:selector) ifFalse:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8000
            implClass := receiverClass whichClassIncludesSelector:selector.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8001
            ^ implClass notNil
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8002
        ].    
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8003
    ].    
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8004
    ^ false
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8005
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8006
    "Created: / 08-02-2017 / 08:45:38 / cg"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8007
!
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8008
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8009
canRestart
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8010
    ^ restartButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8011
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8012
    "Modified: / 17.11.2001 / 19:59:49 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8013
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8014
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8015
canReturn
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8016
    ^ returnButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8017
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8018
    "Modified: / 17.11.2001 / 19:59:18 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8019
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8020
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8021
canSendEmail
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8022
    ^ SendMailTool notNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8023
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8024
    "Created: / 15-10-2010 / 11:51:23 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8025
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8026
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8027
canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8028
    ^ canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8029
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8030
15255
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  8031
hasBlockContextSelected
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  8032
    ^ contextView hasSelection
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  8033
    and:[ self selectedContext isBlockContext ]
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  8034
!
2eba0d927d23 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15249
diff changeset
  8035
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8036
hasContextSelected
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8037
    ^ contextView hasSelection
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8038
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8039
    "Created: / 17.11.2001 / 19:57:03 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8040
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8041
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8042
hasHaltsToIgnore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8043
    ^ IgnoredHalts notEmptyOrNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8044
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8045
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8046
isAborting
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8047
    ^ exitAction == #abort
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8048
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8049
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8050
isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8051
    ^ isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8052
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8053
    "Created: / 06-03-2012 / 12:16:56 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8054
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8055
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8056
isStoppedAtError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8057
    ^ isStoppedAtError "/ ^ self isStoppedAtHaltOrBreakPoint not
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8058
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8059
    "Created: / 27-02-2019 / 12:36:35 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8060
    "Modified: / 27-02-2019 / 22:18:04 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8061
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8062
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8063
isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8064
    ^ isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8065
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8066
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8067
isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8068
    ^ isStoppedAtHaltOrBreakPoint or:[self selectedContextIsWrapped]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8069
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8070
18520
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8071
isStoppedAtHaltOrBreakPointOrSelectedContextIsWrappedAndHasPreviousIgnoreTime
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8072
    ^ self isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8073
    and:[LastIgnoreHaltDuration notEmptyOrNil]
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8074
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8075
    "Created: / 09-11-2018 / 20:37:02 / Claus Gittinger"
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8076
!
efdf10a05363 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 18452
diff changeset
  8077
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8078
selectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8079
    |con mthd|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8080
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  8081
    (con := self selectedContext) notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8082
        mthd := con method.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8083
        ^ mthd notNil and:[mthd isWrapped]
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8084
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8085
    ^ false.
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  8086
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  8087
    "Modified: / 19-07-2012 / 11:36:28 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8088
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  8089
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8090
setOfHiddenCallingSelectors
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8091
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8092
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8093
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8094
setOfHiddenCallingSelectors:aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8095
    setOfHiddenCallingSelectors := aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8096
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8097
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8098
!DebugView methodsFor:'private-breakpoints'!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8099
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8100
addIgnoredErrorForCount:countOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8101
        orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8102
        orThisReceiverClass:forThisReceiverClass orCurrentProcess:forCurrentProcess
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8103
        orIfCalledFromMethod:ifCalledForMethodOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8104
        forAll:aBoolean
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8105
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8106
    |errorContext errorMethod lineNrOfError receiverClassOrNil processOrNil|
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8107
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8108
    aBoolean ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8109
        errorMethod := #all
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8110
    ] ifFalse:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8111
        errorContext := self findErrorContext.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8112
        errorContext isNil ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8113
            Transcript showCR:'no error context found'.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8114
            ^ self
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8115
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8116
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8117
        errorMethod := errorContext method.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8118
        lineNrOfError := errorContext lineNumber.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8119
        (lineNrOfError isNil or:[lineNrOfError <= 0]) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8120
            Transcript showCR:'no Error lineNr found'.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8121
            ^ self
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8122
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8123
        forThisReceiverClass ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8124
            receiverClassOrNil := errorContext receiver class
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8125
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8126
        forCurrentProcess ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8127
            processOrNil := Processor activeProcess
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8128
        ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8129
    ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8130
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8131
    self class
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8132
        ignoreErrorIn:errorMethod line:lineNrOfError
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8133
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8134
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8135
        orIfCalledFromMethod:ifCalledForMethodOrNil
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8136
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8137
    "Created: / 27-02-2019 / 12:42:12 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8138
    "Modified: / 27-02-2019 / 22:23:17 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8139
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8140
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  8141
addIgnoredHaltForCount:countOrNil
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8142
        orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8143
        orThisReceiverClass:forThisReceiverClass orCurrentProcess:forCurrentProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8144
        orIfCalledFromMethod:ifCalledForMethodOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8145
        forAll:aBoolean
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
  8146
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
  8147
    |haltingContext haltingMethod lineNrOfHalt receiverClassOrNil processOrNil|
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8148
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8149
    aBoolean ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8150
        haltingMethod := #all
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8151
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8152
        haltingContext := self findHaltingContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8153
        haltingContext isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8154
            Transcript showCR:'no halting context found'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8155
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8156
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8157
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8158
        haltingMethod := haltingContext method.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8159
        lineNrOfHalt := haltingContext lineNumber.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8160
        (lineNrOfHalt isNil or:[lineNrOfHalt <= 0]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8161
            Transcript showCR:'no halt lineNr found'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8162
            ^ self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8163
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8164
        forThisReceiverClass ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8165
            receiverClassOrNil := haltingContext receiver class
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8166
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8167
        forCurrentProcess ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8168
            processOrNil := Processor activeProcess
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8169
        ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8170
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8171
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8172
    self class
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8173
        ignoreHaltIn:haltingMethod at:lineNrOfHalt
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8174
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8175
        orReceiverClass:receiverClassOrNil orProcess:processOrNil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8176
        orIfCalledFromMethod:ifCalledForMethodOrNil
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  8177
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  8178
    "Created: / 27-01-2012 / 11:31:12 / cg"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8179
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8180
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8181
canAddBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8182
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8183
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8184
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8185
    ^ m notNil and:[m isEnabled:#addBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8186
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8187
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8188
canRemoveBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8189
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8190
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8191
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8192
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8193
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8194
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8195
findContextWithAnySelector:selectors orMClass:mClass orWrapped:orWrappedBoolean
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8196
    |con|
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8197
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8198
    con := firstContext.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8199
    [con notNil] whileTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8200
    "/ contextArray keysAndValuesDo:[:idx :con |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8201
        |sel con2 sel2 method|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8202
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8203
        sel := con selector.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8204
        (selectors includes:sel) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8205
            (method := con method) notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8206
                method mclass == Object ifTrue:[
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8207
                    con2 := con sender. "/ contextArray at:idx+1.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8208
                    sel2 := con2 selector.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8209
                    (selectors includes:sel2) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8210
                        con2 method mclass == Object ifTrue:[
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8211
                            ^ con2 sender "/ contextArray at:idx+2.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8212
                        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8213
                    ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8214
                    ^ con2. "/ contextArray at:idx+1
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8215
                ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8216
                (mClass notNil and:[method mclass == mClass]) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8217
                    "/ (contextArray at:idx+1) infoPrintCR.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8218
                    ^ con sender "/ contextArray at:idx+1
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8219
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8220
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8221
        ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8222
        (orWrappedBoolean and:[con method isWrapped]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8223
            ^ con
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8224
        ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8225
        con := con sender.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8226
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8227
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8228
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8229
    "Created: / 27-02-2019 / 13:40:25 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8230
    "Modified: / 27-02-2019 / 22:20:27 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8231
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8232
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8233
findErrorContext
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8234
    ^ self
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8235
        findContextWithAnySelector:(self class errorSelectors) 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8236
        orMClass:nil 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8237
        orWrapped:false
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8238
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8239
    "Created: / 27-02-2019 / 13:41:18 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8240
    "Modified: / 27-02-2019 / 22:37:14 / Claus Gittinger"
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8241
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8242
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8243
findHaltingContext
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8244
    ^ self
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8245
        findContextWithAnySelector:(self class haltSelectors) 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8246
        orMClass:Breakpoint 
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8247
        orWrapped:true
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8248
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  8249
    "Modified: / 27-01-2012 / 11:06:02 / cg"
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8250
    "Modified: / 27-02-2019 / 22:39:03 / Claus Gittinger"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8251
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8252
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8253
ignoreBreakpoints
18581
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  8254
    ^ ignoreBreakpoints ? false
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  8255
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  8256
    "Created: / 17-11-2001 / 18:20:16 / cg"
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  8257
    "Modified: / 10-02-2019 / 12:47:22 / Claus Gittinger"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8258
! !
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  8259
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8260
!DebugView methodsFor:'private-cache handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8261
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8262
cacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8263
    "remember myself for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8264
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8265
    "caching the last debugger will make the next debugger appear
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8266
     faster, since no resources have to be allocated in the display.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8267
     We have to be careful to release all refs to the debuggee, though.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8268
     Otherwise, the GC will not be able to release it."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8269
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8270
    windowGroup notNil ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8271
        windowGroup setProcess:nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8272
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8273
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8274
    self releaseDebuggee.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8275
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8276
    cachable ~~ true ifTrue:[^ self].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8277
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8278
    "/
13764
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
  8279
    "/ only cache if I am on the Display (i.e. the default screen)
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8280
    "/
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8281
    device == Display ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8282
        exclusive ifTrue:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8283
            CachedExclusive := self
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8284
        ] ifFalse:[
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8285
            CachedDebugger := self
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8286
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8287
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8288
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8289
    ObjectMemory stepInterruptHandler == self ifTrue:[
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  8290
        ObjectMemory stepInterruptHandler:nil
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8291
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8292
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8293
    "Modified: 10.7.1997 / 15:50:46 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8294
    "Modified: 31.7.1997 / 21:20:14 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8295
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8296
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8297
isCached
13226
255f2f3a04f5 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13218
diff changeset
  8298
    "tell whether we are a cached debugger"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8299
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8300
    CachedExclusive == self ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8301
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8302
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8303
    CachedDebugger == self ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8304
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8305
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8306
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8307
    ^ false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8308
13226
255f2f3a04f5 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13218
diff changeset
  8309
    "Created: / 10-07-1997 / 15:22:43 / stefan"
255f2f3a04f5 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13218
diff changeset
  8310
    "Modified (comment): / 27-07-2013 / 15:38:47 / cg"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8311
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8312
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8313
uncacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8314
    "do not remember myself any longer for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8315
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8316
    cachable := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8317
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8318
    CachedExclusive == self ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8319
        CachedExclusive := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8320
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8321
    CachedDebugger == self ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8322
        CachedDebugger := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8323
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8324
    OpenDebuggers notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8325
        OpenDebuggers remove:self ifAbsent:[].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8326
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8327
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8328
    "Modified: 31.7.1997 / 21:20:11 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8329
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8330
17372
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8331
!DebugView methodsFor:'private-code generation helpers'!
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8332
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8333
argumentNamesForNewMethodOfContext:context
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8334
    "generate argument names for a prototypeMethod for the message in context.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8335
     Used by doDefine and doRedefine"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8336
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8337
    |bagOfClassNames bagOfUsedClassNames argNames|
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8338
    
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8339
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8340
    bagOfUsedClassNames := Bag new.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8341
    argNames := actualContext args
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8342
                    collect:
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8343
                        [:eachArg |
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8344
                            |nm|
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8345
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8346
                            nm := eachArg class nameWithoutPrefix.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8347
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8348
                                nm article , nm
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8349
                            ] ifFalse:[
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8350
                                bagOfUsedClassNames add:nm.
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8351
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8352
                            ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8353
                        ].
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8354
    ^ argNames
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8355
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8356
    "Created: / 08-02-2017 / 08:57:24 / cg"
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8357
! !
902487791641 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17305
diff changeset
  8358
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8359
!DebugView methodsFor:'private-code view'!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8360
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8361
codeAspect
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  8362
    ^ SyntaxHighlighter codeAspectMethod
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8363
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8364
    "Created: / 27-07-2011 / 13:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  8365
    "Modified: / 27-07-2012 / 22:20:27 / cg"
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8366
! !
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8367
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8368
!DebugView methodsFor:'private-context handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8369
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  8370
contextListEntryFor:aContext
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  8371
    ^ Error
16501
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8372
        handle:[:ex | '???' ]
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8373
        do:[
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8374
            |s|
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8375
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8376
            aContext selector == #doIt ifTrue:[
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8377
                aContext receiver isNil ifTrue:[
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8378
                    s := 'doIt' allBold
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8379
                ]
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8380
            ].
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8381
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
  8382
            s := Text streamContents:[:s | aContext printWithSeparator:' » ' on:s ].
18243
ec3ef1be1a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18242
diff changeset
  8383
            "/ s infoPrintCR.
16501
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8384
            RememberedCallChain notNil ifTrue:[
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8385
                (RememberedCallChain includesIdentical:aContext) ifTrue:[
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8386
                    s := s withColor:#red.
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8387
                ].
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8388
            ].
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8389
            s
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
  8390
        ].
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  8391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  8392
    "Created: / 21-05-2007 / 13:30:24 / cg"
18243
ec3ef1be1a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18242
diff changeset
  8393
    "Modified: / 27-06-2018 / 17:15:47 / Claus Gittinger"
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  8394
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  8395
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8396
is:aHomeContext inCallingChainOf:aContext
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8397
    |con|
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8398
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8399
    con := aContext.
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8400
    [con notNil and:[con ~~ aHomeContext]] whileTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8401
        con := con sender
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8402
    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8403
    ^ con notNil
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8404
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8405
    "Created: / 10-06-2012 / 18:46:29 / cg"
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8406
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  8407
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8408
isEnteredDueToBreakpointOrHalt
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8409
    "see if we came here due to a step interrupt"
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8410
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8411
    |c cReceiver|
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8412
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8413
    "/ look for a breakpoint-wrapper's context
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8414
    c := thisContext findNextContextWithSelector:#'raiseRequestWith:errorString:in:' or:nil or:nil.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8415
    c isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8416
        ^ true.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8417
    ].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8418
    cReceiver := c receiver.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8419
    ^ cReceiver == BreakPointInterrupt
13293
8a52b9f19f8b class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13229
diff changeset
  8420
8a52b9f19f8b class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13229
diff changeset
  8421
    "Modified: / 01-08-2013 / 23:34:01 / cg"
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8422
!
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8423
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8424
isHaltToBeIgnored
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8425
    "see if the current halt (if any) is in the ignore-list"
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8426
13059
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
  8427
    |c cReceiver sender haltingMethod lineNrInHaltingMethod breakpointParameter
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
  8428
     sReceiver|
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8429
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8430
    "/ should a halt be ignored ?
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8431
    IgnoredHalts isNil ifTrue:[^ false].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8432
13059
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
  8433
    "/ look for a method breakpoint-wrapper's context
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8434
    c := thisContext findNextContextWithSelector:#doRaise or:nil or:nil.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8435
    c notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8436
        ((cReceiver := c receiver) isKindOf:NoHandlerError) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8437
            c := c sender findNextContextWithSelector:#doRaise or:nil or:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8438
            cReceiver := c receiver.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8439
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8440
        (cReceiver isKindOf:BreakPointInterrupt) ifFalse:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8441
            c := nil
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8442
        ] ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8443
            [
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8444
                sender := c sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8445
                ((sReceiver := sender receiver) isKindOf:BreakPointInterrupt)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8446
                or:[ sReceiver == BreakPointInterrupt ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8447
            ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8448
                c := sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8449
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8450
            [ (sender := c sender) isBlockContext ] whileTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8451
                c := sender
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8452
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8453
            sender := nil. "/ avoid keeping a reference to this context
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8454
        ].
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8455
    ].
14993
98d89f9a4b54 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14989
diff changeset
  8456
    "/ Transcript showCR:c.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8457
    c isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8458
        "/ look for halts or explicit breakpoints
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8459
        c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8460
        c isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8461
            c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8462
            c isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8463
               ^ false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8464
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8465
            breakpointParameter := c argAt:1.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8466
            (self class
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8467
                    isBreakpointToBeIgnoredForParameter:breakpointParameter
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8468
                    context:(c sender)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8469
                    modifyEntryCount:true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8470
            ) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8471
                ^ true.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8472
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8473
        ].
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8474
    ].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8475
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8476
    c := c sender.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8477
    "/ a code-breakpoint ?
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8478
    (c receiver isKindOf:Breakpoint) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8479
        c := c sender.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8480
    ].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8481
    haltingMethod := c method.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8482
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8483
    haltingMethod isWrapped ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8484
        lineNrInHaltingMethod := 1.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8485
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8486
        lineNrInHaltingMethod := c lineNumber.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8487
        "/ Transcript showCR:c.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8488
    ].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8489
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
  8490
    ^ self class
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8491
        isHaltToBeIgnoredIn:haltingMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8492
        atLineNr:lineNrInHaltingMethod
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8493
        context:c
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8494
        modifyEntryCount:true.
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8495
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8496
    "Created: / 22-10-2010 / 12:09:53 / cg"
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8497
    "Modified: / 06-03-2012 / 12:54:09 / cg"
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8498
!
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  8499
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8500
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8501
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8502
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  8503
    ^ self setContext:aContext releaseInspectors:true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8504
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  8505
    "Modified: 27.6.1996 / 17:21:59 / cg"
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8506
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8507
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8508
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  8509
    "show calling chain from aContext in the walk-back listview.
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  8510
     Most complications here arise from filtering less-interesting contexts
15256
b057e880276a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15255
diff changeset
  8511
     if not in verbose-context mode or when hiding implementation contexts.
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  8512
     There is a lot of heuristic magic here, to make the debugger as useful
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8513
     as possible for the user (but not particularly for the debugger-developer).
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8514
     On the fly, as we move along the contexts, update the isStoppedAtXXX booleans."
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8515
14531
174dbf38254c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14524
diff changeset
  8516
    |con sel text method caller caller2 called called2 m count c cc sndr
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  8517
     suspendContext calledBySuspendContext nm h calledContext show2
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8518
     alreadyInApplicationCode verboseBacktrace
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8519
     errorSelectors haltSelectors|
11836
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  8520
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  8521
"/    (contextArray size > 0 and:[aContext == (contextArray at:1)]) ifTrue:[
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  8522
"/        "no change"
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  8523
"/        ^ false
224a4d109673 added: #showingSupportCode:
Claus Gittinger <cg@exept.de>
parents: 11828
diff changeset
  8524
"/    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8525
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8526
    errorSelectors := self class errorSelectors.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8527
    haltSelectors := self class haltSelectors.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8528
    
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  8529
    isStoppedAtHaltOrBreakPoint := isStoppedAtBreakPointWithParameter := false.
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8530
    foundRaisingMethod := false.
14523
bd6e67500fa3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14430
diff changeset
  8531
    isStoppedInModalDialog := isStoppedInApplicationAction := alreadyInApplicationCode := false.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8532
    isStoppedAtStatementBreakpoint := isStoppedAtError := false.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  8533
    firstContext := aContext.
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  8534
    verboseBacktrace := self verboseBacktraceHolder value.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  8535
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8536
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8537
    m notNil ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8538
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8539
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  8540
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8541
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8542
    aContext isNil ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8543
        text := Array with:'** no context **'.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8544
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8545
    ] ifFalse:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8546
        text := OrderedCollection new:nChainShown.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8547
        contextArray := OrderedCollection new:nChainShown.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8548
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8549
        con := aContext.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8550
        calledContext := nil.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8551
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8552
        DebuggingContextWalk == true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8553
            '======================================' print. con printCR.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8554
        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8555
        alreadyInApplicationCode :=
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8556
                con receiver isProtoObject not     "/ careful to not force futures/lazy values
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8557
                and:[con receiver class includesBehavior:ApplicationModel].     "do not use #isKindOf: - ProtoObject compat"
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8558
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8559
        verboseBacktrace ~~ true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8560
            "/ with dense backtrace, hide the ProcessorScheduler
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8561
            "/ contexts at the top; look for a Process>>suspend*
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8562
            "/ context within the first 10 contexts
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8563
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8564
            suspendContext := nil.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8565
            c := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8566
            1 to:10 do:[:i |
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8567
                |selector|
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8568
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8569
                c notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8570
                    selector := c selector.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8571
                    selector notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8572
                        (selector isSymbol and:[(selector startsWith:'suspend') and:[c receiver isMemberOf:Process]]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8573
                            suspendContext := c.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8574
                            calledBySuspendContext := cc.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8575
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8576
                    ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8577
                    cc := c.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8578
                    c := c sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8579
                ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8580
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8581
            suspendContext notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8582
                con := suspendContext.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8583
                calledContext := calledBySuspendContext.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8584
                suspendContext := nil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8585
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8586
        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8587
        "/ Transcript show:'1 '; showCR:con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8588
        con notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8589
            "/ hide the halt implementation
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8590
            sel := con selector.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8591
            (haltSelectors includes:sel) ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8592
                (method := con method) notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8593
                    method mclass == Object ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8594
                        (sel isSymbol and:[ sel startsWith:'breakPoint:']) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8595
                            isStoppedAtBreakPointWithParameter := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8596
                            breakPointParameter := con argAt:1.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8597
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8598
                        isStoppedAtHaltOrBreakPoint := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8599
                        verboseBacktrace ~~ true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8600
                            calledContext := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8601
                            con := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8602
                        ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8603
                    ] ifFalse:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8604
                        method mclass == Breakpoint ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8605
                            isStoppedAtHaltOrBreakPoint := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8606
                            isStoppedAtStatementBreakpoint := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8607
                            verboseBacktrace ~~ true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8608
                                calledContext := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8609
                                con := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8610
                            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8611
                            "/ Transcript show:'2 '; showCR:con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8612
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8613
                    ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8614
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8615
            ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8616
            (errorSelectors includes:sel) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8617
                isStoppedAtError := true.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8618
            ].
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8619
        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8620
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8621
        (verboseBacktrace not or:[ hideSupportCode]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8622
            [
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8623
                con notNil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8624
                and:[ con isBlockContext not
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8625
                and:[ con method notNil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8626
                and:[ (con method shouldBeSkippedInDebuggersWalkBack)
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8627
                and:[ (haltSelectors includes: con selector) not]]]]
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8628
            ] whileTrue:[
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8629
                (errorSelectors includes:con selector) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8630
                    isStoppedAtError := true.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8631
                ].
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8632
                "/ Transcript show:'xx '; showCR:con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8633
                calledContext := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8634
                con := con sender
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8635
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8636
        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8637
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8638
        "
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8639
         get them all, by walking along the caller chain.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8640
         depending on the settings, skip some intermediate contexts
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8641
         (such as collection enumeration implementations), which are usually not
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8642
         of interest when debugging an application.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8643
         On the fly, gather some additional information
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8644
         such as: are we at a halt/breakpoint, are we in a modal dialog opened,
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8645
         are we coming from an application model's action etc.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8646
        "
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8647
        count := 0.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8648
        [con notNil and:[count <= nChainShown]] whileTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8649
            "/ remember any halt/breakpoint or openModal on the fly
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8650
            DebuggingContextWalk == true ifTrue:[ '---' print. con printCR ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8651
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8652
            sel := con selector.
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8653
            (errorSelectors includes:sel) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8654
                isStoppedAtError := true.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8655
            ].
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8656
            (haltSelectors includes:sel) ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8657
                (method := con method) notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8658
                    method mclass == Object ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8659
                        (sel isSymbol and:[sel startsWith:'breakPoint:']) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8660
                            isStoppedAtBreakPointWithParameter := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8661
                            breakPointParameter := con argAt:1.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8662
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8663
                        isStoppedAtHaltOrBreakPoint := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8664
                    ] ifFalse:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8665
                        method mclass == Breakpoint ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8666
                            isStoppedAtHaltOrBreakPoint := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8667
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8668
                    ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8669
                ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8670
            ] ifFalse:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8671
                ((sel == #openModal) or:[sel == #openModal:]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8672
                    isStoppedInModalDialog := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8673
                ] ifFalse:[
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8674
                    ((sel == #doRaise) and:[(con receiver isException)]) ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8675
                        foundRaisingMethod := true.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8676
                    ] ifFalse:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8677
                        alreadyInApplicationCode ifFalse:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8678
                            (con receiver isProtoObject not  "/ careful to not force futures/lazy values
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8679
                             and:[con receiver isKindOf:ApplicationModel]) ifTrue:[
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8680
                                isStoppedInApplicationAction := true.
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8681
                            ]
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8682
                        ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8683
                    ]
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8684
                ].
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8685
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8686
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8687
            "/ '---' infoPrintCR.            
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8688
            "/ con infoPrintCR.            
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8689
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8690
            [
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8691
                |show1|
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8692
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8693
                show1 := self showingContext1:con calling:calledContext.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8694
                DebuggingDebugger3 == true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8695
                    'showingContext1: (' print. con print. ') --> ' print. show1 printCR.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8696
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8697
                show1
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8698
            ] whileFalse:[
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8699
                "/ 'skip1: ' infoPrint. con infoPrintCR.            
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8700
                calledContext := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8701
                con := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8702
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8703
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8704
            show2 := self showingContext2:con nesting:count.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8705
            DebuggingDebugger3 == true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8706
                'showingContext2: (' print. con print. ') --> ' print. show2 printCR.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8707
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8708
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8709
            show2 ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8710
                contextArray add:con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8711
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8712
                (MoreDebuggingDetail == true) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8713
                    nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8714
                ] ifFalse:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8715
                    nm := self contextListEntryFor:con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8716
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8717
                text add:nm.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8718
                count := count + 1.
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8719
            ] ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8720
                "/ 'skip2: ' infoPrint. con infoPrintCR.            
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8721
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8722
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8723
            "/ with hidden support code, skip over internals of exceptions
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8724
            false "hideSupportCode == true" ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8725
                "/ Transcript showCR:'x'.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8726
                (con isBlockContext
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8727
                and:[ (h := con home) notNil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8728
                and:[ (self is:h inCallingChainOf:con) ]]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8729
                    |blocksReceiver|
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8730
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8731
                    blocksReceiver := con receiver.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8732
                    c := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8733
                    [
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8734
                        c notNil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8735
                        and:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8736
                            sndr := c sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8737
                            (sndr ~= h)
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8738
                            and:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8739
                                blocksReceiver isCollection         "/ skip collection implementations
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8740
                                or:[ ( #( #'handle:do:'         "/ skip exception implementations
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8741
                                          #'handleDo:'
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8742
                                          #'answer:do:'
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8743
                                          #'ensure:' ) includes: c selector )
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8744
                                or:[ #'perform:*'               "/ skip perform implementations
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8745
                                         match: c selector ]]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8746
                            ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8747
                        ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8748
                    ] whileTrue:[
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8749
                        "/ 'skip3: ' infoPrint. c infoPrintCR.
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8750
                        c := sndr
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8751
                    ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8752
                    c notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8753
                        con := c "sender".
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8754
                    ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8755
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8756
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8757
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8758
            "/
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8759
            "/ kludge: if it's a wrapped method, then hide the wrap-call
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8760
            "/
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8761
            method := con method.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8762
            method notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8763
                called := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8764
                caller := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8765
                (caller notNil and:[caller receiver == method]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8766
                    called2 := caller.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8767
                    caller2 := caller sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8768
                    caller2 notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8769
                        (caller2 method isWrapped
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8770
                        and:[ caller2 method originalMethod == method ]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8771
                            calledContext := called2.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8772
                            con := caller2
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8773
                        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8774
                    ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8775
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8776
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8777
                caller := caller2 := nil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8778
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8779
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8780
            "/ with dense backtrace, skip the doIt method's context
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8781
            "/ (its dummy anyway) and fake that context's name
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8782
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8783
            verboseBacktrace ~~ true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8784
                (con isBlockContext
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8785
                 and:[(h := con home) == con sender
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8786
                 and:[h notNil
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8787
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8788
                 and:[h method who isNil]]]]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8789
                    calledContext := con.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8790
                    con := con sender.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8791
                    text removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8792
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8793
                    text add:(self contextListEntryFor:con methodHome).
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8794
                ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8795
                h := nil.  "/ never keep refs to contexts unless you really need them ...
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8796
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8797
18452
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8798
            "/ hook for subclasses
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8799
            (self stopShowingMoreContextsAfter:con) ifTrue:[
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8800
                con := nil
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8801
            ] ifFalse:[
18452
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8802
                "/ with dense backtrace, don't show contexts below the doIt
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8803
                ( verboseBacktrace ~~ true
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8804
                and:[ (self setOfHiddenCallingSelectors includes:con selector) ]
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8805
                ) ifTrue:[
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8806
                    con := nil.
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8807
                ] ifFalse:[
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8808
                    calledContext := con.
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8809
                    con := con sender
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  8810
                ].
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8811
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8812
        ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8813
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8814
        "
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8815
         did we reach the end ?
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8816
        "
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8817
        (con isNil or:[con sender isNil]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8818
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8819
            "/ the very last one is the startup context
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8820
            "/ (in main) - it has nil as receiver and nil as selector
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8821
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8822
            (contextArray notEmpty
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8823
            and:[contextArray last selector isNil]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8824
                contextArray removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8825
                text removeLast
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8826
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8827
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8828
            verboseBacktrace ~~ true ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8829
                "/ in dense mode, remove process startup contexts (if any)
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8830
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8831
                (contextArray size > 0
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8832
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8833
                    con selector == #start ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8834
                        contextArray removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8835
                        text removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8836
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8837
                        [contextArray size > 0
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8838
                         and:[contextArray last methodHome == con]] whileTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8839
                            contextArray removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8840
                            text removeLast.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8841
                        ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8842
                    ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8843
                ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8844
            ]
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8845
        ] ifFalse:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8846
            m notNil ifTrue:[
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8847
                m enable:#showMore.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8848
            ].
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8849
            canShowMore := true.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8850
            text add:(resources string:'*** more walkback follows - click here to see them ***')
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8851
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8852
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8853
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8854
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  8855
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8856
    releaseInspectors ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8857
        receiverInspector release.
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8858
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8859
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8860
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8861
    m notNil ifTrue:[
15497
c05f957c8150 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15413
diff changeset
  8862
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8863
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  8864
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8865
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  8866
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  8867
    "Created: / 14-12-1995 / 19:10:31 / cg"
17821
758353b9080d #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17714
diff changeset
  8868
    "Modified: / 30-11-2017 / 12:16:08 / cg"
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  8869
    "Modified: / 27-02-2019 / 22:38:55 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8870
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  8871
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8872
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8873
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  8874
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8875
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8876
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8877
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  8878
    con := aContext.
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  8879
    self verboseBacktraceHolder value ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8880
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8881
            con := con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8882
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8883
                con := con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8884
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  8885
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8886
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8887
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8888
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  8889
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  8890
    "Modified: / 17.1.1998 / 12:43:19 / cg"
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8891
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  8892
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8893
showingContext1:aContext calling:calledContext
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8894
    "return false, if this (top) context is to be skipped.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  8895
     Here, we hide some well known methods, which are usually not too interesting;
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8896
     the set of methods which are suppressed is my (claus's) own choice."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  8897
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8898
    |recIsException recIsExceptionHandler
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8899
     arg1IsException arg1IsExceptionHandler    
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8900
     sel rec arg1 senderRec mthd mthdClass calledSel calledRec|
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8901
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8902
    self verboseBacktraceHolder value ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8903
        hideSupportCode ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8904
            ^ true 
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8905
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8906
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8907
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8908
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8909
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8910
    rec := aContext receiver.
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8911
    
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8912
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8913
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8914
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8915
    recIsException := recIsExceptionHandler := false.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8916
    arg1IsException := arg1IsExceptionHandler := false.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8917
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8918
    "/ to avoid firing/waiting lazys or futures,
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8919
    "/ and to avoid forwarding to bridges...
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8920
    rec isProtoObject ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8921
        recIsException := rec isException.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8922
        recIsException ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8923
            recIsExceptionHandler := rec isExceptionHandler.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8924
            "/ signals are both creators and handlers
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8925
            recIsException := (rec isExceptionCreator and:[recIsExceptionHandler])
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8926
        ].    
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8927
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8928
    aContext numArgs > 0 ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8929
        arg1 := aContext argAt:1.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8930
        "/ to avoid firing/waiting lazys or futures,
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8931
        "/ and to avoid forwarding to bridges...
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8932
        arg1 isProtoObject ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8933
            arg1IsException := arg1 isException.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8934
            arg1IsException ifFalse:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8935
                arg1IsExceptionHandler := arg1 isExceptionHandler.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8936
                "/ signals are both creators and handlers
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8937
                arg1IsException := (arg1 isExceptionCreator and:[arg1IsExceptionHandler])
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8938
            ].    
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8939
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8940
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8941
    
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  8942
    aContext sender notNil ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8943
        senderRec := aContext sender receiver
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  8944
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  8945
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  8946
    DebuggingDebugger3 == true ifTrue:[
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8947
        'showingContext1: ' infoPrint. aContext infoPrintCR.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8948
        'calling: ' infoPrint. calledContext infoPrintCR.
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8949
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8950
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8951
    (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8952
        #( doCallHandler: 
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8953
           doRaise
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8954
           raiseRequest
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8955
           raiseRequestErrorString:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8956
           raiseRequestWith:errorString:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8957
           raiseRequestWith:errorString:in:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8958
        ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8959
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8960
        recIsException ifTrue:[ ^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8961
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8962
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8963
    (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8964
        #(  raise 
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8965
            raiseRequest
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8966
        ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8967
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8968
        recIsException ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8969
            (senderRec isProtoObject not
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8970
            and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8971
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8972
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8973
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8974
    (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8975
        #(
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8976
            doWhile:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8977
            ensure:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8978
            ifCurtailed:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8979
        ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8980
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8981
        (rec isProtoObject not and:[rec isBlock]) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8982
            true "aContext sender isBlockContext" ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8983
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8984
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  8985
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  8986
    calledContext notNil ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8987
        calledSel := calledContext selector.
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8988
        calledRec := calledContext receiver.
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8989
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8990
        calledRec isBlock ifTrue:[
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8991
            (calledSel == #ensure:) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8992
            (calledSel == #ifCurtailed:) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8993
        ].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8994
        (calledSel == #handle:do:) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  8995
        (calledSel == #answer:do:) ifTrue:[^ false].
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8996
        (calledSel == #on:do:) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8997
        (calledSel == #on:do:ensure:) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8998
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  8999
        (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9000
            #( 
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9001
                perform: perform:with: perform:with:with: 
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9002
                perform:withArguments:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9003
                perform:withArguments:ifNotUnderstood:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9004
            ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9005
        ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9006
            calledSel == arg1 ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9007
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9008
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9009
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9010
    (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9011
        #(
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9012
            handleDo:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9013
            handle:do:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9014
            answer:do:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9015
        ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9016
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9017
        recIsExceptionHandler ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9018
        "/ (calledRec isProtoObject not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9019
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9020
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9021
    (
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9022
        #(
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9023
            on:do:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9024
            on:do:ensure:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9025
        ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9026
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9027
        arg1IsExceptionHandler ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9028
        "/ (calledRec isProtoObject not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9029
    ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9030
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9031
    (#(
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9032
        withCursor:do:
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9033
        withWaitCursorDo:
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9034
        withReadCursorDo:
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9035
        withWriteCursorDo:
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9036
        withSearchCursorDo:
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9037
      ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9038
    ) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9039
            (mthdClass == TopView) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9040
            (mthdClass == ApplicationModel) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9041
            (mthdClass == WindowGroup) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9042
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9043
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9044
    (#(
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9045
        wait
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9046
        waitWithTimeout:
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9047
        waitWithTimeoutMs:
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9048
      ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9049
    ) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9050
            (mthdClass == Semaphore) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9051
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9052
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9053
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9054
    (#(
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9055
        suspendWithState:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9056
      ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9057
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9058
            (mthdClass == Process) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9059
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9060
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9061
    (#(
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9062
        suspend:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9063
        threadSwitch:
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9064
      ) includes:sel
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9065
    ) ifTrue:[
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9066
            (mthdClass == ProcessorScheduler) ifTrue:[^ false].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9067
        ].
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9068
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9069
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9070
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  9071
    "Created: / 17-11-2001 / 22:24:06 / cg"
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9072
    "Modified: / 27-07-2012 / 17:30:18 / cg"
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9073
    "Modified: / 26-06-2018 / 19:58:56 / Claus Gittinger"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9074
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9075
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9076
showingContext2:aContext nesting:nesting
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  9077
    "return false, if this (intermediate) context is to be skipped.
13455
510fbf53592c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13416
diff changeset
  9078
     Here, we hide some well known methods, which are usually not too interesting;
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9079
     the set of methods which are suppressed is my (claus's) own choice."
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9080
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9081
    |sel rec mClass
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9082
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9083
15257
0d7cd5d85da3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15256
diff changeset
  9084
    self verboseBacktraceHolder value ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9085
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9086
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9087
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9088
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9089
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9090
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9091
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9092
    sender notNil ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9093
        senderSelector := sender selector.
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9094
        senderReceiver := sender receiver.
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9095
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9096
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9097
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9098
    sel == #withCursor:do: ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9099
        (mClass == WindowGroup) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9100
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9101
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9102
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9103
    or:[sel == #withWaitCursorDo:]) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9104
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9105
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9106
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  9107
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  9108
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  9109
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  9110
    or:[sel == #doWithIndex:]]]) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9111
        mClass == Array ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9112
        mClass == OrderedCollection ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9113
        mClass == Set ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9114
        mClass == Dictionary ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9115
        mClass == Interval ifTrue:[^ false].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9116
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9117
    (sel == #perform:
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9118
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9119
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9120
    or:[sel == #perform:with:with:with:
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9121
    or:[sel == #perform:with:with:with:with:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9122
    or:[sel == #perform:withArguments:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9123
    or:[sel == #perform:with:ifNotUnderstood:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9124
    or:[sel == #perform:withArguments:ifNotUnderstood:]]]]]]])
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9125
    ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9126
        hideSupportCode == true ifTrue:[
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9127
            "/ 'x' printCR.
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9128
            mClass == Object ifTrue:[^ false]
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9129
        ].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9130
        nesting == 0 ifTrue:[^ true].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9131
        mClass == Array ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9132
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9133
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9134
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9135
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9136
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9137
    (mClass == Object) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9138
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9139
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9140
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9141
    (mClass == Method) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9142
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9143
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9144
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  9145
    (mClass == SmallInteger) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9146
        (sel == #to:do:) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9147
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  9148
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  9149
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  9150
    (mClass == Block) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9151
        sel == #ensure: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9152
        sel == #ifCurtailed: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9153
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9154
        sel == #valueOnUnwindDo: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9155
        sel == #on:do: ifTrue:[^ false].
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9156
        sel == #on:do:ensure: ifTrue:[^ false].
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9157
        sel == #on:do:ifCurtailed: ifTrue:[^ false].
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9158
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9159
        sel == #value ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9160
        sel == #value: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9161
        sel == #value:value: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9162
        sel == #value:value:value: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9163
        sel == #value:value:value:value: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9164
        sel == #value:value:value:value:Value: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9165
        sel == #value:value:value:value:value:value: ifTrue:[^ false].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9166
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9167
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9168
    aContext isBlockContext ifTrue:[
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9169
        |home|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9170
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9171
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9172
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9173
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9174
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9175
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9176
"/        sel == #value:value:value:value:value:value: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9177
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9178
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9179
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9180
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9181
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  9182
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9183
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9184
        home := aContext home.
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9185
        (home notNil 
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9186
         and:[home receiver isProtoObject not 
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9187
         and:[home receiver isKindOf:Semaphore]]) ifTrue:[
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9188
            (home selector == #wait) ifTrue:[^ false].
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9189
            (home selector == #waitWithTimeoutMs:) ifTrue:[^ false].
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9190
        ].
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9191
    ].
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9192
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9193
    rec isProtoObject ifTrue:[
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9194
        ^ true.
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9195
    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  9196
    (rec isExceptionHandler) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9197
        sel == #handle:do: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9198
        sel == #handleDo: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9199
        (sel startsWith:#raise) ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9200
        sel == #answer:do: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9201
    ].
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9202
    (rec isException) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9203
        sel == #doRaise ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9204
        sel == #doCallHandler: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9205
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9206
            senderReceiverClass == Signal ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9207
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9208
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9209
    (mClass == Context) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9210
        sel == #unwind ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9211
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9212
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9213
    (mClass == ProcessorScheduler) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9214
        sel == #interruptActive ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9215
        sel == #threadSwitch: ifTrue:[^ false].
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9216
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9217
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9218
    mClass == Process ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9219
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  9220
    ].
15256
b057e880276a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15255
diff changeset
  9221
    (sel == #break) ifTrue:[
17122
217cc7b2af3b #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17109
diff changeset
  9222
        (mClass == Breakpoint) ifTrue:[^ false].
15256
b057e880276a class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15255
diff changeset
  9223
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9224
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  9225
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  9226
    "Created: / 17-11-2001 / 19:34:20 / cg"
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  9227
    "Modified: / 27-07-2012 / 17:26:54 / cg"
17305
862a23b67f68 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 17188
diff changeset
  9228
    "Modified: / 31-01-2017 / 20:21:32 / stefan"
18242
389cc9dfddfd #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18205
diff changeset
  9229
    "Modified: / 26-06-2018 / 19:58:41 / Claus Gittinger"
18452
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9230
!
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9231
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9232
stopShowingMoreContextsAfter:aContext
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9233
    "return true, if followup calling contexts are to be skipped.
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9234
     False is returned here, as the regular debugger shows all contexts
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9235
     up to the very first caller (in Process start).
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9236
     Redefinable in special debuggers (expecco), which want to stop after
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9237
     the activity >> execute context."
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9238
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9239
    ^ false
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9240
e834a04cd4fa #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18451
diff changeset
  9241
    "Created: / 10-10-2018 / 16:18:21 / Claus Gittinger"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  9242
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  9243
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  9244
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9245
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9246
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9247
    "this is a kludge:
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9248
        start a dispatchloop which exits when
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9249
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9250
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9251
17980
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9252
    |process savedPriorityRange savedPriority|
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9253
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9254
    process := Processor activeProcess.
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9255
    savedPriorityRange := process priorityRange.
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9256
    savedPriority := process priority.
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9257
    process priorityRange:nil; priority:(Processor userSchedulingPriority).
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9258
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9259
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  9260
    [
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9261
        [haveControl] whileTrue:[
17980
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9262
            AbortOperationRequest ignoreIn:[
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9263
                self controlLoopCatchingErrors
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9264
            ]
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9265
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  9266
    ] ensure:[
17980
7b284c5bcaba #FEATURE by sr
sr
parents: 17978
diff changeset
  9267
        process priorityRange:savedPriorityRange; priority:savedPriority.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9268
        catchBlock := nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9269
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9270
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  9271
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  9272
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9273
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9274
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9275
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  9276
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  9277
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  9278
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9279
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9280
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9281
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9282
    (exclusive or:[windowGroup isNil]) ifTrue:[
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9283
        "if we do not have multiple processes or its a system process
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9284
         we start another dispatch loop, which exits when
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9285
         either continue, return or step is pressed
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9286
         or (via the catchBlock) if an error occurs.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9287
         Since our display is an extra exclusive one,
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9288
         all processing for normal views stops here ...
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9289
        "
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9290
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9291
        WindowGroup setActiveGroup:windowGroup.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9292
        SignalSet anySignal handle:[:ex |
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9293
            |signal|
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9294
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9295
            signal := ex creator.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9296
            (UserInterruptSignal accepts:signal) ifTrue:[
14835
239d36d19ee2 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14814
diff changeset
  9297
Transcript showCR:'UserInterruptSignal'.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9298
                self topView raiseDeiconified.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9299
                ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9300
            ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9301
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9302
            (UserNotification accepts:signal) ifTrue:[
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9303
Transcript showCR:'UserNotification'.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9304
                (signal ~~ ActivityNotificationSignal) ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9305
                    self showError:ex description.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9306
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9307
                ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9308
            ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9309
            (HaltInterrupt accepts:signal) ifTrue:[
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9310
Transcript showCR:'HaltInterrupt'.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9311
                Transcript showCR:'Halt/Break in debugger ignored'.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9312
                self topView raiseDeiconified.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9313
                ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9314
            ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9315
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9316
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9317
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  9318
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9319
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9320
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9321
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9322
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9323
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9324
>>>>     :    ' , ex suspendedContext sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9325
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9326
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9327
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9328
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9329
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9330
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9331
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9332
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender sender sender sender sender printString , '
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9333
>>>>     :    ' , ex suspendedContext sender sender sender sender sender sender sender sender sender sender sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  9334
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9335
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  9336
caught & ignored.'.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9337
            ex return.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9338
        ] do:[
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9339
"/            UserNotification handle:[:ex |
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9340
"/                (ex signal == ActivityNotificationSignal) ifTrue:[
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9341
"/                    ex proceed
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9342
"/                ].
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9343
"/                self showError:ex description.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9344
"/                ex proceed.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9345
"/            ] do:[
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  9346
                device isNil ifTrue:[^ self].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  9347
                
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  9348
                device
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9349
                    dispatchModalWhile:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9350
                        Processor activeProcess state:#debug.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9351
                        haveControl].
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
  9352
"/            ]
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9353
        ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9354
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9355
    ] ifFalse:[
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9356
        "we do have multiple processes -
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9357
         simply enter the DebugViews-Windowgroup event loop.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9358
         effectively suspending event processing for the currently
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9359
         active group.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9360
        "
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9361
        SignalSet anySignal handle:[:ex |
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9362
            |answer signal eMsg|
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9363
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9364
            signal := ex creator.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9365
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9366
            DebuggingDebugger ~~ true ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9367
                (signal == ActivityNotification) ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9368
                    ex proceed
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9369
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9370
                "/
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9371
                "/ ignore exceptions which say they explicitly have to be ignored
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9372
                "/
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9373
                ex catchInDebugger ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9374
                    'DebugView [info]: ',signal printString,'-signal in debugger caught for close' infoPrintCR.
18053
4dbd16cc7512 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18004
diff changeset
  9375
                    self breakPoint:#cg. "/ self destroy.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9376
                    ex reject
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9377
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9378
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9379
                "/
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9380
                "/ ignore recursive breakpoints
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9381
                "/
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9382
                (signal isControlInterrupt) ifTrue:[
18581
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  9383
                    self ignoreBreakpoints == true ifTrue:[
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9384
                        'DebugView [info]: halt/break in debugger ignored 1' infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9385
                        ('DebugView [info]: ',ex suspendedContext printString) infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9386
                        self topView raiseDeiconified.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9387
                        ex proceed
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9388
                    ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9389
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9390
                (signal == TerminateProcessRequest) ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9391
                    "/ mhm - someone wants to shoot me down while debugging ...
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9392
                    answer := Dialog
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9393
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9394
                                labels:#( 'Ignore' 'Close & terminate' )
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9395
                                values:#( #proceed #close )
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9396
                                default:#close.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9397
                    answer == #close ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9398
                        self destroy.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9399
                        ex reject
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9400
                    ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9401
                    ex return.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9402
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9403
                signal == RecursiveExceptionError ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9404
                    (ex exception creator == BreakPointInterrupt)
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9405
                    ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9406
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9407
                        ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9408
                    ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9409
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9410
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9411
12687
1d78c217e701 use #creator instead of #signal
Claus Gittinger <cg@exept.de>
parents: 12671
diff changeset
  9412
>>>> Signal:  ' , ex creator printString , '
1d78c217e701 use #creator instead of #signal
Claus Gittinger <cg@exept.de>
parents: 12671
diff changeset
  9413
>>>>          ' , ex parameter creator printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9414
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9415
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9416
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9417
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  9418
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  9419
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9420
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  9421
caught & ignored.'.
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9422
                    ex return
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9423
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9424
            ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9425
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9426
            self topView raiseDeiconified.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9427
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9428
            eMsg := ex description.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9429
            (signal isControlInterrupt) ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9430
                eMsg := eMsg , Character cr asString , 'in ' , ex suspendedContext printString
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9431
            ].
18127
f769d587e96c #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 18097
diff changeset
  9432
            DialogBox aboutToOpenBoxNotificationSignal
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9433
                handle:[:ex | ex proceed ]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9434
                do:[
18430
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9435
                    |labels values|
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9436
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9437
                    labels := #( 'Proceed' 'Cancel' 'Debug' ).
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9438
                    values := #( #proceed #cancel #debug ).
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9439
                    ex creator == BreakPointInterrupt ifTrue:[
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9440
                        labels := #('Disable BreakPoint & Proceed' ) , labels.
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9441
                        values := #(#disableAndProceed ) , values.
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9442
                    ].    
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9443
                    answer := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9444
                        choose:(ex creator class theNonMetaclass name,' in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs)
18430
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9445
                        labels:(resources array:labels)
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9446
                        values:values
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9447
                        default:#cancel.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9448
                ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9449
            answer == #debug ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9450
                'DebugView [info]: caught exception - debugging' infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9451
                Debugger
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9452
                    enterUnconditional:(ex suspendedContext)
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9453
                    withMessage:(ex creator class theNonMetaclass name,' in debugger: ' , eMsg)
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9454
                    mayProceed:true.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9455
                ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9456
            ].
18430
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9457
            answer == #disableAndProceed ifTrue:[
18777
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9458
                ex lineBreakpoint notNil ifTrue:[
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9459
                    ex lineBreakpoint disable.
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9460
                ] ifFalse:[
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9461
                    |m|
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9462
                    
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9463
                    "/ a method breakpoint
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9464
                    m := ex suspendedContext method.
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9465
                    m isWrapped ifTrue:[
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9466
                        MessageTracer unwrapMethod:m
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9467
                    ].    
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9468
                ].    
18430
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9469
                answer := #proceed.
4b690cff00ba #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18323
diff changeset
  9470
            ].    
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9471
            answer == #proceed ifTrue:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9472
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9473
                ex proceed.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9474
            ].
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9475
            'DebugView [info]: caught exception - returning' infoPrintCR.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9476
            ex return.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9477
        ] do:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9478
            "/ make certain that sub-debuggers, inspectors etc.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9479
            "/ come up on my device.
16253
a10c2c4594d5 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16134
diff changeset
  9480
            Screen currentScreenQuerySignal answer:device
15757
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9481
            do:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9482
                Dialog aboutToOpenBoxNotificationSignal
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9483
                    handle:[:ex | ex proceed ]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9484
                    do:[
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9485
                        windowGroup
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9486
                            eventLoopWhile:[Processor activeProcess state:#debug.
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9487
                                              true]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9488
                            onLeave:[]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9489
                    ]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9490
            ]
b54d72ba3a7e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15730
diff changeset
  9491
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9492
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9493
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9494
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  9495
    "Created: / 24-11-1995 / 20:33:45 / cg"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  9496
    "Modified: / 26-09-2012 / 15:03:39 / cg"
18127
f769d587e96c #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 18097
diff changeset
  9497
    "Modified: / 15-05-2018 / 20:38:41 / stefan"
18777
5aec66bd18fe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18742
diff changeset
  9498
    "Modified: / 27-05-2019 / 20:51:19 / Claus Gittinger"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9499
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9500
13416
42dde7fc4713 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13415
diff changeset
  9501
!DebugView methodsFor:'queries'!
42dde7fc4713 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13415
diff changeset
  9502
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9503
canDefineForCallee:callee
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9504
    "again, pure heuristics here"
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9505
16072
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9506
    |mthd app heuristic selector sender|
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9507
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9508
    callee isNil ifTrue:[^ false].
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9509
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9510
    classToDefineIn := selectorToDefine := nil.    "/ sorry - left as info to define action
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9511
16072
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9512
    "/ clicked on an unimplemented method ?
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9513
    sender := callee sender.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9514
    sender isNil ifTrue:[^ false].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9515
    
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9516
    mthd := sender method.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9517
    mthd isNil ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9518
        sender isBlockContext ifFalse:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9519
            "/ an unimplemented method
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9520
            selector := sender selector.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9521
            (sender receiver class canUnderstand:selector) ifFalse:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9522
                classToDefineIn := sender receiver class.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9523
                selectorToDefine := selector.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9524
                ^ true
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9525
            ]
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9526
        ]
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9527
    ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9528
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9529
    mthd := callee method.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9530
    mthd notNil ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9531
        (mthd selector == #subclassResponsibility) ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9532
            classToDefineIn := sender receiver class.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9533
            selectorToDefine := sender selector.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9534
            ^ true.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9535
        ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9536
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9537
        "/ that's a big hack, but I am tired of navigating to find the missing menu message...
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9538
        "/ you will thank me!!
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9539
        mthd selector == #error:mayProceed: ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9540
            (callee receiver isKindOf:MenuPanel) ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9541
                |senderHome|
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9542
                
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9543
                (senderHome := sender home) notNil ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9544
                    (senderHome selector startsWith:'accept:') ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9545
                        (inspectedProcess notNil and:[inspectedProcess isGUIProcess]) ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9546
                            (app := self processesApplication) notNil ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9547
                                heuristic := senderHome argsAndVars select:[:o | o isSymbol].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9548
                                heuristic size == 1 ifTrue:[
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9549
                                    classToDefineIn := app class.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9550
                                    selectorToDefine := heuristic first.
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9551
                                    ^ true
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9552
                                ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9553
                            ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9554
                        ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9555
                    ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9556
                ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9557
            ].
086a1f557371 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16065
diff changeset
  9558
        ]
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9559
    ].
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9560
    ^ false
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9561
!
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
  9562
13489
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9563
showingAlreadyModifiedCode
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9564
    ^ methodCodeToggle isVisible
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9565
    and:[ methodCodeToggleSelectionHolder value = 2 ]
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9566
! !
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9567
17156
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9568
!DebugView methodsFor:'testing'!
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9569
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9570
isDebugView
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9571
    ^ true
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9572
! !
e83700f581f1 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17129
diff changeset
  9573
13489
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9574
!DebugView methodsFor:'user interaction'!
814f26876cd3 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13488
diff changeset
  9575
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9576
checkIfCodeIsReallyModified
18177
739543da9f6d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18169
diff changeset
  9577
    "see if there is really a difference between the editor's contents
739543da9f6d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18169
diff changeset
  9578
     and the current method's source."
739543da9f6d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18169
diff changeset
  9579
     
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9580
    |methodSource editorCode|
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  9581
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9582
    codeView modified ifFalse:[^ false].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9583
    currentMethod isNil ifTrue:[^ false].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9584
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9585
    methodSource := currentMethod source.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9586
    methodSource notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9587
        methodSource := methodSource string.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9588
        editorCode := codeView contents string.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9589
        methodSource = editorCode ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9590
            ^ false
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9591
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9592
        (methodSource withTabsExpanded:8) = (editorCode withTabsExpanded:8) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9593
            ^ false
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9594
        ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  9595
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9596
    ^ true
18177
739543da9f6d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18169
diff changeset
  9597
739543da9f6d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18169
diff changeset
  9598
    "Modified (format): / 02-06-2018 / 06:05:27 / Claus Gittinger"
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9599
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9600
17109
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9601
checkIfCodeIsReallyModifiedAndConfirmWith:questionString
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9602
    "if code was not modified or confirmation answered with 'ok',
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9603
     return true (i.e. whatever user wants to do should be done).
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9604
     Otherwise, return false"
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9605
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9606
    self checkIfCodeIsReallyModified ifFalse:[^ true].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9607
    (self confirm:(resources stringWithCRs:questionString)) ifTrue:[^ true].
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9608
    ^ false.
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9609
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9610
    "Created: / 25-11-2016 / 13:35:34 / cg"
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9611
!
cd9444834f62 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17107
diff changeset
  9612
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  9613
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  9614
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  9615
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  9616
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  9617
checkSelectionChangeAllowed:newSelection
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9618
    |answer v|
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9619
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9620
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9621
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9622
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9623
    and:[newSelection = contextView selection]) ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9624
        ^ true
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9625
    ].
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9626
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9627
    answer := Dialog
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9628
                confirmWithCancel:('Code modified - change selection anyway ?')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9629
                labels:#('No' 'No, Show Diffs' 'Yes').
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9630
    answer isNil ifTrue:[^ false].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9631
    answer == false ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9632
        v := DiffCodeView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9633
                openOn:codeView contents
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9634
                label:(resources string:'Changed code (to be accepted ?)')
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9635
                and:currentMethod source
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9636
                label:(resources string:'Method''s actual (maybe original) code').
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9637
        v label:(resources string:'Comparing method''s code').
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9638
        v waitUntilVisible.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9639
        ^ false
13388
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9640
    ].
65c95fd29280 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13376
diff changeset
  9641
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  9642
    codeView modified:false.
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  9643
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  9644
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  9645
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9646
codeAccept:someCode
13394
f196d8ddec24 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13388
diff changeset
  9647
    "user wants some code to be recompiled"
f196d8ddec24 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13388
diff changeset
  9648
14640
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9649
    ParseError handle:[:ex |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9650
        ex lineNumber notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9651
            codeView selectLine:ex lineNumber. "/ selectFromCharacterPosition:ex startPosition to:ex endPosition.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9652
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9653
        Dialog information:ex description.
14640
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9654
"/            ParseError new
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9655
"/                errorMessage:aMessage startPosition:position endPosition:endPos;
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9656
"/                parameter:self;
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9657
"/                lineNumber:tokenLineNr; "lineNr"
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9658
"/                raiseRequest.
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9659
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9660
        ^ self codeAccept:someCode unwind:false category:nil onCancel:nil
14640
692dba3782da class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14608
diff changeset
  9661
    ].
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  9662
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  9663
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9664
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  9665
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9666
codeAccept:someCode inClass:aClass unwind:doUnwind category:category onCancel:cancelAction
13394
f196d8ddec24 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13388
diff changeset
  9667
    "user wants some code to be recompiled.
f196d8ddec24 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13388
diff changeset
  9668
     Optionally unwind stack to right above the changed method.
13455
510fbf53592c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13416
diff changeset
  9669
     This undwind option is a leftover from times, when the debugger had no chance to
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9670
     show the original code.
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9671
     Now, it can, and got a choice-field to select between original and changed code.
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9672
     So the undwind option is not longer used and probably completely obsolete now
13455
510fbf53592c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13416
diff changeset
  9673
     (aka: this method is always called with doUnwind==false, these days)"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9674
13842
609697ec1e06 merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13764
diff changeset
  9675
    |con newMethod|
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9676
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9677
    codeView withWaitCursorDo:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9678
        "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9679
         find the method-home context for this one
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9680
        "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9681
        doUnwind ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9682
            con := selectedContext.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9683
            top := con.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9684
            [con notNil] whileTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9685
                (con methodHome == selectedContext) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9686
                    top := con
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9687
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9688
                con := con sender
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9689
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9690
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9691
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9692
        "/
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9693
        "/ provide the classes nameSpace and changefile-update answers;
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9694
        "/ in case we accept while in another context, to not capture these settings again
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9695
        "/
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9696
        (Class updateChangeFileQuerySignal,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9697
         Class updateChangeListQuerySignal,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9698
         Class updateHistoryLineQuerySignal) answer:true
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9699
        do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9700
            Class nameSpaceQuerySignal answer:(aClass nameSpace)
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9701
            do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9702
                "/ the compiler nowadays already cares for the package...
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9703
                "/ no, actually, it does not in case we are in the middle of a fileIn,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9704
                "/ and packageQuery is already answered by someone else.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9705
                "/ Better make it unpackaged, in case the user makes changes to other
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9706
                "/ classes here (actually, I often change compiler, debugger, inspector here)
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9707
                Class packageQuerySignal
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9708
                answer:nil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9709
                do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9710
                    codeView contents:someCode.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9711
                    Class methodRedefinitionNotification
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9712
                        answer:#keep
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9713
                        do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9714
                            | breakpoints newMethodOrClass |
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9715
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9716
                            breakpoints := nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9717
                            codeView isCodeView2 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9718
                                breakpoints := codeView breakpoints.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9719
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9720
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9721
                            BreakpointQuery answer: breakpoints do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9722
                                "/ Use original method's programming language instead of class's one.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9723
                                "/ In most cases it's the same, but it may be that the method edited
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9724
                                "/ and accepted was an extension method written in another languages
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9725
                                "/ (such as Smalltalk extension to Java class or Ruby extension to
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9726
                                "/ Smalltalk class.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9727
                                newMethodOrClass := selectedContext programmingLanguage 
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9728
                                                        compilerClassForInteractiveTools
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9729
                                                             compile:someCode
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9730
                                                             forClass:aClass
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9731
                                                             inCategory:category
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9732
                                                             notifying:codeView.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9733
                                "/ Kludge for accepting Java code in a debugger. The Java compiler
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9734
                                "/ does not compile single methods but always a full class and returns
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9735
                                "/ the compiled class(es) rather than a method. 
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9736
                                "/ However, we need to update the method holder of a codeView.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9737
                                "/
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9738
                                "/ So, here we check whether the returned `newMethod` is really a method,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9739
                                "/ if it's a class, try to search that class for a method with the
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9740
                                "/ same selector as selector of currently selected context. If found,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9741
                                "/ that's the 'new' method we are going to show.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9742
                                newMethodOrClass isBehavior ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9743
                                    | selector |
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9744
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9745
                                    selector := selectedContext selector.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9746
                                    newMethod := newMethodOrClass compiledMethodAt: selector ifAbsent: nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9747
                                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9748
                                    newMethod := newMethodOrClass.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9749
                                    newMethod == #Error ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9750
                                        "/ should now be obsolete
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9751
                                        newMethod := nil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9752
                                    ].    
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9753
                                ].    
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9754
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9755
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9756
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9757
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9758
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9759
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9760
        methodCodeToggleSelectionHolder value:2.    "/ showing current code
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9761
        methodCodeToggle beVisible.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9762
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9763
        inspecting ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9764
            (newMethod isNil) ifTrue:[^ cancelAction value].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9765
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9766
            codeView modified:false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9767
            codeView isCodeView2 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9768
                codeView methodHolder value: newMethod.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9769
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9770
            currentMethod := newMethod.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9771
            
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9772
            doUnwind ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9773
                "/ if it worked, and doUnwind is true,
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9774
                "/ remove everything up to and including top
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9775
                "/ from the context chain
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9776
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9777
                selectedContext canReturn ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9778
                    self setContext:(top "sender").
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9779
                    exitAction := #restart.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9780
                    selectedContext setLineNumber:1.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9781
                    self doRestart.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9782
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9783
                    self setContext:(top sender).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9784
                    exitAction := #return.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9785
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9786
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
  9787
        ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9788
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9789
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  9790
    "Created: / 17-11-2001 / 21:50:55 / cg"
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  9791
    "Modified: / 29-08-2006 / 14:22:22 / cg"
14713
ced0e6da3de1 class: DebugView
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14697
diff changeset
  9792
    "Modified: / 17-08-2014 / 11:44:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9793
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  9794
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9795
codeAccept:someCode unwind:doUnwind category:givenCategoryOrNil onCancel:cancelAction
13394
f196d8ddec24 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13388
diff changeset
  9796
    "user wants some code to be recompiled"
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9797
16422
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9798
    |sel implementorClass receiverClass method category wrapper|
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9799
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9800
    codeView withWaitCursorDo:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9801
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9802
"/         find the method-home context for this one
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9803
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9804
"/        con := selectedContext.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9805
"/        top := con.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9806
"/        [con notNil] whileTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9807
"/            (con methodHome == selectedContext) ifTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9808
"/                top := con
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9809
"/            ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9810
"/            con := con sender
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9811
"/        ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9812
16422
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9813
        "
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9814
         use class&selector to find the method for the compilation
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9815
         and compile.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9816
        "
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9817
        category := givenCategoryOrNil.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9818
        sel := selectedContext selector.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9819
        implementorClass := selectedContext methodClass.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9820
        method := selectedContext method.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9821
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9822
        implementorClass isNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9823
            (method notNil 
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9824
                and:[method mclass isNil 
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9825
                and:[(wrapper := method wrapper) notNil]]
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9826
            ) ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9827
                method := wrapper.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9828
            ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9829
            method notNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9830
                implementorClass := method mclass.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9831
                implementorClass isNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9832
                    implementorClass := method getMclass
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9833
                ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9834
            ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9835
        ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9836
        implementorClass notNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9837
            category isNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9838
                method isNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9839
                    method := implementorClass compiledMethodAt:sel.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9840
                ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9841
                category := method category
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9842
            ]
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9843
        ] ifFalse:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9844
            receiverClass := selectedContext receiver class.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9845
            implementorClass := receiverClass whichClassImplements:sel.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9846
            implementorClass := implementorClass ? receiverClass.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9847
            implementorClass ~~ Object ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9848
                implementorClass := Dialog
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9849
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9850
                                        initialAnswer:implementorClass name
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9851
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9852
                implementorClass size == 0 ifTrue:[
17632
8b7e10435a11 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17601
diff changeset
  9853
                    ^ cancelAction value "/ canceled
16422
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9854
                ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9855
                implementorClass := Smalltalk classNamed:implementorClass.
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9856
                implementorClass isNil ifTrue:[
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9857
                    Dialog warn:'No such class'.
17632
8b7e10435a11 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17601
diff changeset
  9858
                    ^ cancelAction value "/ canceled
16422
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9859
                ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9860
            ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9861
        ].
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9862
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9863
        self
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9864
            codeAccept:someCode
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9865
            inClass:implementorClass
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9866
            unwind:doUnwind
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9867
            category:category
9ae2c4be75c4 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16376
diff changeset
  9868
            onCancel:cancelAction.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9869
    ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9870
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9871
    "Created: / 17-11-2001 / 21:50:55 / cg"
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9872
    "Modified: / 29-08-2006 / 14:22:22 / cg"
17632
8b7e10435a11 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17601
diff changeset
  9873
    "Modified (comment): / 24-08-2017 / 14:57:53 / cg"
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9874
!
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  9875
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9876
codeCompletion
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9877
    "/ I found this code 3 times (CodeView2, NewSystemBrowser and DebugView) - smell?
14109
6269ce6fbb65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13965
diff changeset
  9878
    "/ (can we move that to a utility - probably DoWhatIMeanSupport)
6269ce6fbb65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13965
diff changeset
  9879
6269ce6fbb65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13965
diff changeset
  9880
    |cls language|
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9881
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  9882
    currentMethod isNil ifTrue:[ ^ self ].
8338
2a8df762ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8327
diff changeset
  9883
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9884
    cls := currentMethod mclass.
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
  9885
    cls notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9886
        language := cls programmingLanguage.
14109
6269ce6fbb65 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13965
diff changeset
  9887
    ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  9888
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9889
    UserInformation handle:[:ex |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9890
        ex proceed.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9891
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9892
        DoWhatIMeanSupport codeCompletionForLanguage:language class:cls context:selectedContext codeView:codeView.
13562
56d3659b75a0 Pass programming language when asking DWIM to complete code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13553
diff changeset
  9893
    ].
56d3659b75a0 Pass programming language when asking DWIM to complete code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13553
diff changeset
  9894
56d3659b75a0 Pass programming language when asking DWIM to complete code
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 13553
diff changeset
  9895
    "Modified: / 18-09-2013 / 14:20:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9896
!
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  9897
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9898
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  9899
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  9900
     Redefined here, to answer true, if exclusice Debugger, which cannot handle popup boxes"
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9901
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9902
    (exclusive or:[windowGroup isNil]) ifTrue:[
16960
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  9903
        ^ true
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  9904
    ].
1495d95f87a1 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16958
diff changeset
  9905
    ^ super confirm:(resources stringWithCRs:aString).
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9906
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  9907
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  9908
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  9909
    "user clicked on a header line - show selected code in textView.
303
1d94813f1977 interest is written with one 'r' (shame on me)
Claus Gittinger <cg@exept.de>
parents: 301
diff changeset
  9910
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  9911
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  9912
    HaltInterrupt handle:[:ex |
18581
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  9913
        self ignoreBreakpoints ifFalse:[ex reject].
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9914
        ('DebugView [info]: halt/breakpoint in debugger at %1 ignored [doShowSelection.]' bindWith:ex suspendedContext) infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9915
        ex proceed
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  9916
    ] do:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9917
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  9918
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  9919
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  9920
18581
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  9921
    "Modified: / 17-11-2001 / 22:12:16 / cg"
a4164d5736fb #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18574
diff changeset
  9922
    "Modified: / 10-02-2019 / 12:48:20 / Claus Gittinger"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  9923
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  9924
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  9925
hideStackInspector
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  9926
    stackInspector notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9927
        stackInspector destroy.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9928
        stackInspector := nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9929
        receiverInspector origin:(0.0 @ 0.0) corner:0.5 @ 1.0.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9930
        contextInspector origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  9931
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  9932
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  9933
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9934
methodCodeToggleChanged
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9935
    |sel|
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9936
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9937
    sel := contextView selection.
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9938
    sel notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9939
        self showSelection:sel
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9940
    ]
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9941
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9942
    "Created: / 18-06-2010 / 12:29:21 / cg"
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9943
!
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  9944
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9945
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  9946
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  9947
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9948
12106
0dd284890b62 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12080
diff changeset
  9949
    <resource: #keyboard (#CodeCompletion )>
0dd284890b62 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12080
diff changeset
  9950
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9951
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9952
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9953
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9954
    evView notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9955
        focusView := evView windowGroup focusView.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9956
        focusView isNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9957
            focusView := evView.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9958
        ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9959
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9960
        anEvent isKeyPressEvent ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9961
            key := anEvent key.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9962
            rawKey := anEvent rawKey.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9963
            inCodeView := (focusView == codeView
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9964
                          or:[focusView isComponentOf:codeView]).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9965
            inCodeView ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9966
                key == #CodeCompletion ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9967
                    "/ complete the word before/under the cursor.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9968
                    self sensor
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9969
                        pushUserEvent:#codeCompletion
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9970
                        for:self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9971
                        withArguments:#().
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9972
                    ^ true
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9973
                ].
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  9974
                "/ (key == #CtrlReturn) ifTrue:[
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  9975
                "/     "/ eat it
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  9976
                "/     "/ self sensor enqueueMessage:#doContinue for:self arguments:nil.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  9977
                "/     ^ true
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
  9978
                "/ ].     
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9979
            ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9980
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  9981
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  9982
false ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9983
        anEvent isButtonReleaseEvent ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9984
            anEvent view == codeView ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9985
                (RBParser notNil and:[RBParser isLoaded])
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9986
                ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9987
                    self sensor
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9988
                        pushEvent:anEvent.  "/ must be first in queue
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9989
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9990
                    self sensor
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9991
                      pushUserEvent:#explainSelection
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9992
                      for:self
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9993
                      withArguments:nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9994
                    ^ true  "/ eaten
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9995
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9996
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
  9997
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  9998
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  9999
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
 10000
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
 10001
    ^ false
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10002
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10003
    "Modified: / 27-02-2019 / 12:28:55 / Claus Gittinger"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
 10004
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
 10005
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
 10006
setCurrentMethod:aMethodOrNil
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
 10007
    currentMethod := aMethodOrNil.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
 10008
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
 10009
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
 10010
showSelection:lineNr
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
 10011
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
 10012
     Also sent to autoselect an interesting context on entry."
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
 10013
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
 10014
    UserNotification
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10015
        handle:[:ex |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10016
            "/ ex suspendedContext fullPrintAll.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10017
            Transcript showCR:ex description.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10018
            "/ Transcript showCR:ex parameter.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10019
            ex proceed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10020
        ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10021
        do:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10022
            Error
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10023
                handle:[:ex |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10024
                    |s con|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10025
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10026
                    ex creator isControlInterrupt ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10027
                        'DebugView [info]: halt/break ignored - while showing selection in debugger'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10028
                            infoPrintCR.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10029
                        ex proceed
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10030
                    ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10031
                    ('DebugView [info]: error at %1 when showing selection in debugger ignored'
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10032
                        bindWith:ex suspendedContext) infoPrintCR.
18742
87e567b55dad #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18679
diff changeset
 10033
                    ('DebugView [info]: error is: %1 (param:%2 text:%3)'
87e567b55dad #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18679
diff changeset
 10034
                        bindWith:ex description with:ex parameter with:ex messageText) infoPrintCR.
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10035
                    s := '' writeStream.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10036
                    s nextPutLine:'**** error in debugger, while extracting source'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10037
                    s nextPutLine:'****'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10038
                    s nextPutLine:'**** ',(ex description).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10039
                    s nextPutLine:'****'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10040
                    con := ex suspendedContext.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10041
                    s nextPutLine:'**** ',(con printString).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10042
                    con := con sender.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10043
                    HaltInterrupt ignoreIn:[ con fullPrintAllOn:s. ].
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
 10044
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10045
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10046
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10047
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10048
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
 10049
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10050
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10051
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10052
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10053
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10054
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
 10055
"/                            ].
15413
764b28599a90 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 15412
diff changeset
 10056
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10057
                    codeView contents:(s contents).
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10058
                    ex return.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10059
                ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10060
                do:[ self doShowSelection:lineNr ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10061
        ]
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
 10062
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
 10063
    "Modified: / 19-07-2012 / 10:56:58 / cg"
18742
87e567b55dad #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18679
diff changeset
 10064
    "Modified: / 13-04-2019 / 05:24:39 / Claus Gittinger"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
 10065
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
 10066
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
 10067
showStackInspectorFor:con
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10068
    stackInspector isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10069
        receiverInspector origin:(0.0 @ 0.0) corner:0.3 @ 1.0.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10070
        contextInspector origin:(0.3 @ 0.0) corner:(0.6 @ 1.0).
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
 10071
        stackInspector := (self inspectorViewClassForStack)
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10072
                    origin:(0.6 @ 0.0)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10073
                    corner:(1.0 @ 1.0)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10074
                    in:contextInspector superView.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10075
        stackInspector realize.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10076
        stackInspector fieldListLabel:'Stack'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10077
        stackInspector hideReceiver:true
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10078
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10079
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10080
    stackInspector showLast
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
 10081
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
 10082
    "Modified: / 28-05-2019 / 18:30:02 / Claus Gittinger"
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10083
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
 10084
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10085
updateContextInfoFor:aContext
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10086
    "additional info as-per selected context;
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10087
     for now:
15656
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10088
        update:with:from: - show who was responsible
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10089
    "
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10090
12552
1b3bb88d6f44 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12551
diff changeset
 10091
    |whatChanged changedObject receiver|
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10092
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10093
    aContext selector == #'update:with:from:' ifTrue:[
15656
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10094
        receiver := aContext receiver.
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10095
        whatChanged := aContext argAt:1.
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10096
        changedObject := aContext argAt:3.
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10097
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10098
        changedObject isBehavior ifTrue:[
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10099
            contextInfoLabel label:('update (',whatChanged printString allBold,') triggered by ',changedObject name allBold).
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10100
            ^ self
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10101
        ].
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10102
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10103
        receiver class allInstanceVariableNames keysAndValuesDo:[:i :nm |
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10104
            |val|
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10105
17978
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
 10106
            self class withDebuggingFlagSetDo:[    
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10107
                val := receiver instVarAt:i.
15656
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10108
            ].
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10109
            val == changedObject ifTrue:[
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10110
                contextInfoLabel label:('update (',whatChanged printString allBold,') triggered by ',nm allBold).
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10111
                ^ self
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10112
            ]
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10113
        ].
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10114
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10115
        (receiver isProtoObject not and:[receiver isKindOf:ApplicationModel]) ifTrue:[
15656
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10116
            receiver builder notNil ifTrue:[
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10117
                (receiver builder bindings ? #()) keysAndValuesDo:[:eachAspect :eachValue |
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10118
                    eachValue == changedObject ifTrue:[
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10119
                        contextInfoLabel label:('update (',whatChanged printString allBold,') triggered by aspect ',eachAspect allBold).
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10120
                        ^ self
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10121
                    ]
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10122
                ]
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10123
            ]
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10124
        ].
8df723e008c6 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15497
diff changeset
 10125
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10126
        "do not use classNameWithArticle - it is missing in ProtoObject!!"
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10127
        contextInfoLabel label:('update (',whatChanged printString allBold,') triggered by ',changedObject class nameWithArticle allBold).
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10128
        ^ self.
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10129
    ].
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10130
    contextInfoLabel label:nil.
17978
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
 10131
831e13b3c5c7 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17936
diff changeset
 10132
    "Modified: / 01-02-2018 / 10:08:37 / stefan"
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10133
!
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10134
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
 10135
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
 10136
    "show selected code for lineNr in contextList in textView.
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
 10137
     Also used to autoselect an interesting context on entry."
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
 10138
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
 10139
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
 10140
     implementorClass lineNrInMethod rec m line
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
 10141
     sender selSender tryVars possibleBlocks errMsg
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
 10142
     codeSet highlighter evaluatorClass
11912
9bcd2727c37e changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 11911
diff changeset
 10143
     canDefine callee searchClass originalMethod cannotAcceptDueToOutdatedClass|
9bcd2727c37e changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 11911
diff changeset
 10144
9bcd2727c37e changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 11911
diff changeset
 10145
    canDefine := cannotAcceptDueToOutdatedClass := false.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
 10146
    self setCurrentMethod:nil.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
 10147
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
 10148
    contextArray notNil ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10149
        lineNr <= contextArray size ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10150
            con := contextArray at:lineNr.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10151
            callee := contextArray at:lineNr-1 ifAbsent:nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10152
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10153
        "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10154
         clicking on the '** ...'-line shows more ...
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10155
        "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10156
        con isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10157
            line := contextView list at:lineNr.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10158
            (line startsWith:'**') ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10159
                self showMore.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10160
                lineNr >= contextArray size ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10161
                    contextView setSelection:lineNr.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10162
                    con := contextArray at:lineNr ifAbsent:nil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10163
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10164
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10165
            con isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10166
                codeView contents:nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10167
                ^ self
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10168
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10169
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10170
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10171
        selectedContext := con.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10172
        m := contextView middleButtonMenu.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10173
        (m notNil and:[selectedContext notNil]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10174
            m enableAll:#(browseImplementors browseSenders inspectContext)
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10175
        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10176
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10177
        self withExecuteCursorDo:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10178
            codeSet := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10179
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10180
            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10181
             give it to the (lower right) inspector
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10182
            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10183
            Error handle:[:ex |
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10184
                'DebugView [warning]: error while accessing context: ' errorPrint.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10185
                ex description errorPrintCR.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10186
                contextInspector inspect:nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10187
                contextInspector fieldListLabel:('Context').
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10188
                ex suspendedContext fullPrintAllOn: Transcript.
9479
7364779433be changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 9446
diff changeset
 10189
"/ ex reject.
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10190
            ] do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10191
                contextInspector inspect:con.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10192
                "/ contextInspector fieldListLabel:('Context: ',con method whoString).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10193
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10194
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10195
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10196
            "/ show a stack inspector sometimes
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10197
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10198
            con hasStackToShow ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10199
                self showStackInspectorFor:con
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10200
            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10201
                self hideStackInspector
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10202
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10203
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10204
            homeContext := con methodHome.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10205
            con canReturn ifTrue:[
18583
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10206
                returnButton notNil ifTrue:[returnButton enable]. 
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10207
                restartButton notNil ifTrue:[restartButton enable].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10208
            ] ifFalse:[
18583
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10209
                returnButton notNil ifTrue:[returnButton disable]. 
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10210
                restartButton notNil ifTrue:[restartButton disable].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10211
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10212
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10213
            lineNrInMethod := con lineNumber.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10214
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10215
            canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10216
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10217
            homeContext isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10218
                "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10219
                 mhmh - an optimized block
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10220
                 should get the block here, and get the method from
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10221
                 that one ...
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10222
                 But in the current version, there is no easy way to get to the block
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10223
                 since that one is not in the context.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10224
                 A future new block calling scheme will fix this
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10225
                 (passing the block instead of the home as block argument).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10226
                "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10227
                (method := con method) isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10228
                    "temporary kludge - peek into the sender context.
17398
0d92218ed77b #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17372
diff changeset
 10229
                     If it's a do-like method and there is a single block variable
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10230
                     in the args or temporaries, that must be the one.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10231
                     This helps in some cases.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10232
                    "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10233
                    (sender := con sender) notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10234
                        tryVars := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10235
                        (selSender := sender selector) notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10236
                            ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10237
                                tryVars := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10238
                            ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10239
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10240
                        tryVars ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10241
                            possibleBlocks := sender argsAndVars select:[:v | v isBlock].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10242
                            possibleBlocks := possibleBlocks select:[:b | b home isNil].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10243
                            possibleBlocks size == 1 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10244
                                method := possibleBlocks first method.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10245
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10246
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10247
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10248
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10249
            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10250
                "fetch rec here - so we won't need context in doItAction"
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10251
                rec := homeContext receiver.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10252
                sel := homeContext selector.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10253
                sel notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10254
                    canAccept := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10255
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10256
                    implementorClass := homeContext methodClass.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10257
                    implementorClass isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10258
                        homeContext method notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10259
                            WrappedMethod allInstancesDo:[:wrapped |
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10260
                                wrapped originalMethod == homeContext method ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10261
                                    implementorClass := wrapped mclass
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10262
                                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10263
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10264
                            implementorClass isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10265
                                (homeContext searchClass notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10266
                                and:[homeContext searchClass isObsolete]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10267
                                    cannotAcceptDueToOutdatedClass := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10268
                                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10269
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10270
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10271
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10272
                    implementorClass isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10273
                        Error handle:[:ex |
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10274
"/ not covered by Error, anyway
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10275
"/                            ex signal == BreakPointInterrupt ifTrue:[
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10276
"/                                ex proceed.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10277
"/                            ].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10278
                            code := 'error while asking method for its source'.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10279
                            code := code , Character cr , ex creator printString.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10280
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
18593
26507bc67fde #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18592
diff changeset
 10281
                            code := code , Character cr , 'walkback: ' , Character cr.
26507bc67fde #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18592
diff changeset
 10282
                            code := code , ex fullPrintAllString.
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10283
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10284
                            canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10285
                            ex return.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10286
                        ] do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10287
                            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10288
                             special: look if this context was created by
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10289
                             valueWithReceiver kind of method invocation;
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10290
                             if so, grab the method from the sender and show it
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10291
                            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10292
                            ((sender := homeContext sender) notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10293
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
18277
399f3e795ddb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18243
diff changeset
 10294
                            and:[ sender receiver isBridgeProxy not
399f3e795ddb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18243
diff changeset
 10295
                            and:[ sender receiver isMethod]]]) ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10296
                                method := sender receiver.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10297
                                canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10298
                            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10299
                                (method := con method) notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10300
                                    canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10301
                                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10302
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10303
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10304
                    ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10305
                        method := implementorClass compiledMethodAt:sel.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10306
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10307
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10308
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10309
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10310
            homeContext notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10311
                searchClass := homeContext searchClass ? rec class.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10312
                currentMethod := searchClass lookupMethodFor:sel.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10313
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10314
            originalMethod := currentMethod.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10315
            (currentMethod notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10316
                and:[currentMethod ~~ method
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10317
                and:[ (currentMethod isWrapped and:[ method == currentMethod originalMethod]) not ]]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10318
            ) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10319
                originalMethod := method.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10320
                methodCodeToggleSelectionHolder value = 1 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10321
                    method := originalMethod.   "/ the one which is suspended / was executing
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10322
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10323
                    method := currentMethod.    "/ the one which has already been accepted/modified.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10324
                    lineNrInMethod := nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10325
                    canAccept := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10326
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10327
                methodCodeToggle beVisible.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10328
            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10329
                methodCodeToggle beInvisible.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10330
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10331
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10332
            code isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10333
                errMsg := nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10334
                method isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10335
                    "/ fall back heuristics (see how this was called, fetch block from caller)
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10336
                    sender := con sender.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10337
                    con isBlockContext ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10338
                        (sender notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10339
                        and:[((sender selector ? '') startsWith:'value')
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10340
                        and:[sender receiver isBlock]]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10341
                            code := sender receiver source.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10342
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10343
                    ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10344
                        (sender notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10345
                        and:[((sender selector ? '') startsWith:'valueWith')
18277
399f3e795ddb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18243
diff changeset
 10346
                        and:[sender receiver isBridgeProxy  not
399f3e795ddb #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18243
diff changeset
 10347
                        and:[sender receiver isMethod]]]) ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10348
                            method := sender receiver.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10349
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10350
                    ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10351
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10352
                method notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10353
                    contextInspector fieldListLabel:(method selector "whoString").
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10354
                    Error handle:[:ex |
11890
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10355
"/ not covered by Error, anyway
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10356
"/                        ex signal isControlInterrupt ifTrue:[
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10357
"/                            ex proceed.
16c5daa5083a added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11887
diff changeset
 10358
"/                        ].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10359
                        code := 'error while asking method for its source'.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10360
                        code := code , Character cr , ex creator printString.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10361
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
18593
26507bc67fde #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18592
diff changeset
 10362
                        code := code , Character cr , 'walkback: ' , Character cr.
26507bc67fde #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18592
diff changeset
 10363
                        code := code , ex fullPrintAllString.
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10364
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10365
                        canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10366
                        ex return.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10367
                    ] do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10368
                        self sensor shiftDown ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10369
                            code := method decompiledSource
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10370
                        ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10371
                            code := method source.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10372
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10373
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10374
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10375
                    code isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10376
                        method sourceFilename notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10377
                            codeView contents:(resources
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10378
                                                       string:'** no sourcefile: %1 **'
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10379
                                                       with:method sourceFilename).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10380
                            codeView realized ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10381
                                "codeView is not realized on initial startup"
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10382
                                codeView flash:'no source'.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10383
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10384
                            codeSet := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10385
                        ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10386
                            [
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10387
                                |src|
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10388
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10389
                                src := String streamContents:[:s | Decompiler decompile:method to:s].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10390
                                codeView contents:src.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10391
                                codeSet := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10392
                            ] on: Error do:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10393
                                errMsg := '** no source **'
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10394
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10395
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10396
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10397
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10398
                    contextInspector fieldListLabel:'Context'.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10399
                    homeContext isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10400
                        errMsg := '** sorry; cannot show code of all optimized blocks (yet) **'.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10401
                    ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10402
                        errMsg := '** no method - no source **'.
16800
95c770ac8fd6 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16750
diff changeset
 10403
                        canDefine := true.
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10404
                    ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10405
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10406
                errMsg notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10407
                   self showError:errMsg.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10408
                   codeSet := true.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10409
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10410
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10411
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10412
            code isNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10413
                "/ canAccept := false.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10414
                codeSet ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10415
                    codeView contents:nil.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10416
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10417
            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10418
                lineNrInMethod notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10419
                    lineNrInMethod == 0 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10420
                        (method notNil and:[method isJavaMethod]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10421
                            lineNrInMethod := method lineNumber
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10422
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10423
                        "/ guess lineNumber from sent-messages selector
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10424
                        "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10425
                        lineNrInMethod == 0 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10426
                            |conIdx sentContext messages|
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10427
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10428
                            conIdx := contextArray identityIndexOf:con.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10429
                            conIdx > 1 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10430
                                sentContext := contextArray at:conIdx-1.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10431
                                sentContext isBlockContext ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10432
                                    (method notNil and:[code notNil]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10433
                                        messages := method messagesSent.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10434
                                        messages size == 1 ifTrue:[
17642
917a57c6efcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17632
diff changeset
 10435
                                            sentContext selector = messages first ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10436
                                                lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10437
                                            ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10438
                                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10439
                                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10440
                                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10441
                            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10442
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10443
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10444
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10445
                codeView isCodeView2 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10446
                    codeView model
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10447
                        setValue: code;
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10448
                        changed.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10449
                    codeView methodHolder value: method.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10450
                    codeView classHolder value: ((method respondsTo: #mclass) ifTrue:[method mclass] ifFalse:[rec class])
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10451
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10452
                    UserPreferences current syntaxColoring ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10453
                        implementorClass isNil ifTrue:[
16933
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
 10454
                            |guessedHome|
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10455
                            (con isBlockContext
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10456
                            and:[con home isNil
16933
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
 10457
                            and:[(guessedHome := con guessedHome) notNil]])
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10458
                            ifTrue:[
16933
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
 10459
                                implementorClass := guessedHome mclass
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10460
                            ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10461
                        ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10462
                        implementorClass notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10463
                            (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10464
                                code size < 100000 ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10465
                                    Error catch:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10466
                                        code := highlighter formatMethodSource:code in:implementorClass.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10467
                                    ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10468
                                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10469
                            ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10470
                        ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10471
                    ].
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
 10472
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
 10473
"/                code ~= (codeView contents) ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10474
                    cannotAcceptDueToOutdatedClass ifTrue:[
16501
c0c0c5382c15 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16434
diff changeset
 10475
                        codeView setContents:(('Obsolete code (outdated due to class change). Use Browser.' withColor:Color red),Character cr,Character cr,code asString).
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10476
                    ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10477
                        codeView setContents:code.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10478
                    ].
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
 10479
"/                ].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10480
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10481
                (lineNrInMethod notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10482
                and:[lineNrInMethod ~~ 0
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10483
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
 10484
lineNrInMethod == 255 ifFalse:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10485
                    (lineNrInMethod == 255
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10486
                    and:[method notNil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10487
                    and:[method hasCode not]]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10488
                        "/ means: do not really know in interpreted methods
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10489
                        codeView selectFromLine:255 col:1 toLine:codeView list size + 1 col:0.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10490
                    ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10491
                        codeView selectLine:lineNrInMethod.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10492
                    ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10493
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
 10494
].
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10495
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10496
                    codeView unselect.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10497
                    codeView scrollToTop
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10498
                ]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10499
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10500
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10501
            codeView acceptEnabled:canAccept.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10502
            canAccept ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10503
                codeView acceptAction:[:code | self codeAccept:code asString]
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10504
            ] ifFalse:[
17936
b98ee93c4b18 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17880
diff changeset
 10505
                codeView acceptAction:[:code | self beepInEditor]
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10506
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10507
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10508
            receiverInspector inspect:rec.
17126
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10509
            "do not use classNameWithArticle - it is missing in ProtoObject!!"
721da4817f3f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17122
diff changeset
 10510
            receiverInspector fieldListLabel:("'Receiver: ',"rec class nameWithArticle).
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10511
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10512
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10513
            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10514
             the one below is wrong: currently, the
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10515
             evaluator cannot handle passed contexts.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10516
             Once it does, pass con as in:-arg
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10517
            "
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10518
            (rec isJavaObject
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10519
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10520
                "/ although a java object, use the smalltalk parser here for doIts.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10521
                evaluatorClass := Parser.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10522
                codeView commentStrings:#( '//' ( '/*' '*/' ) ).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10523
            ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10524
                (method notNil and:[method mclass notNil]) ifTrue:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10525
                    evaluatorClass := method mclass evaluatorClass.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10526
                    codeView commentStrings:method mclass programmingLanguage commentStrings.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10527
                ] ifFalse:[
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10528
                    evaluatorClass := rec class evaluatorClass.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10529
                    codeView commentStrings:rec class programmingLanguage commentStrings.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10530
                ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10531
            ].
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10532
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10533
            codeView
16933
fddff2620ed7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16860
diff changeset
 10534
                simulatedSelf:rec;
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10535
                doItAction:
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10536
                    [:theCode |
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10537
                         evaluatorClass
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10538
                             evaluate:theCode
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10539
                             in:actualContext "/ (selectedContext ? actualContext)
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10540
                             receiver:rec
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10541
                             notifying:codeView
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10542
                             logged:true
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10543
                             ifFail:nil
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10544
                    ];
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10545
                editedMethodOrClass:(method ? rec class).
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10546
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10547
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10548
            self setCurrentMethod:method.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10549
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10550
            selectedContext := homeContext ? con.
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10551
            actualContext := con
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10552
        ].
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10553
    ] ifFalse:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10554
        codeView contents:nil.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10555
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10556
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10557
18583
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10558
    sendButton notNil ifTrue:[
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10559
        con isContext ifFalse:[
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10560
            sendButton disable.
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10561
        ] ifTrue:[
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10562
            sendButton enable.
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10563
        ].
ccca1b500668 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18581
diff changeset
 10564
    ].    
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10565
    self updateContextInfoFor:con.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
 10566
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
 10567
    "clear out locals to prevent keeping around unneeded contexts
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10568
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10569
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10570
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10571
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10572
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10573
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10574
13488
82ef098c106e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 13464
diff changeset
 10575
    (canDefine or:[self canDefineForCallee:callee]) ifTrue:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10576
        defineButton beVisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10577
    ] ifFalse:[
16430
973b534176ca #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16422
diff changeset
 10578
        defineButton beInvisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10579
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10580
12529
2fae1a014b9e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12437
diff changeset
 10581
    "/ enable/disable some menu items
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10582
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10583
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
 10584
    "Created: / 14-08-1997 / 20:15:00 / cg"
10752
77650773a9ea Fixed class holder for CodeView2
vrany
parents: 10649
diff changeset
 10585
    "Modified: / 05-10-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17642
917a57c6efcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17632
diff changeset
 10586
    "Modified: / 30-08-2017 / 15:56:10 / cg"
18593
26507bc67fde #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18592
diff changeset
 10587
    "Modified: / 14-02-2019 / 22:39:12 / Claus Gittinger"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10588
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10589
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10590
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'accessing'!
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10591
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10592
ignoreCount:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10593
    ignoreCount := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10594
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10595
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10596
ignoreEndTime:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10597
    ignoreEndTime := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10598
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10599
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10600
ignoreForProcess:aProcess
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10601
    ignoredProcesses isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10602
        ignoredProcesses := WeakIdentitySet new.
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10603
    ].
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10604
    ignoredProcesses add:aProcess
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10605
!
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10606
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10607
ignoreForReceiverClass:aClass
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10608
    ignoredReceiverClasses isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10609
        ignoredReceiverClasses := WeakIdentitySet new.
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10610
    ].
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10611
    ignoredReceiverClasses add:aClass
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10612
!
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10613
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10614
ignoreIfCalledFromMethod:aMethod
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10615
    ignoredSendingClassAndSelectors isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10616
         ignoredSendingClassAndSelectors := OrderedCollection new.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10617
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10618
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10619
    "/ remember the method's name, not the method.
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10620
    "/ so it can be recompiled and we still detect ignores
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10621
    ignoredSendingClassAndSelectors add:{aMethod mclass name . aMethod selector }
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10622
!
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10623
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
 10624
ignoreUntilShiftKeyPressed:aBoolean
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
 10625
    ignoreUntilShiftKeyPressed := aBoolean.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
 10626
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
 10627
    "Created: / 27-01-2012 / 11:35:23 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10628
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10629
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10630
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'misc'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10631
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10632
decrementIgnoreCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10633
    ignoreCount notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10634
        ignoreCount > 0 ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10635
            ignoreCount := ignoreCount - 1
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10636
        ]
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10637
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10638
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10639
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10640
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10641
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10642
printConditionOn:aStream
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10643
    ignoredSendingClassAndSelectors notEmptyOrNil ifTrue:[
18786
5730baa41e74 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18777
diff changeset
 10644
        aStream nextPutAll:(' if called from %1 » %2'
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10645
                                bindWith:ignoredSendingClassAndSelectors first first
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10646
                                with:ignoredSendingClassAndSelectors first second).
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10647
        ^ self.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10648
    ].
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10649
    ignoredProcesses notEmptyOrNil ifTrue:[
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10650
        aStream nextPutAll:(' in %1 processes (%2)'
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10651
                                bindWith:ignoredProcesses size
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10652
                                with:((ignoredProcesses collect:[:each | each name] as:OrderedCollection) asStringWith:', ')).
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10653
        ^ self.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10654
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10655
    ignoredReceiverClasses notNil ifTrue:[
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10656
        aStream nextPutAll:(' for %1 classes (%2)'
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10657
                            bindWith:ignoredReceiverClasses size
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10658
                            with:((ignoredReceiverClasses collect:[:each | each name] as:OrderedCollection) asStringWith:', ')).
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10659
        ^ self.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10660
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10661
    ignoreUntilShiftKeyPressed == true ifTrue:[
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10662
        aStream nextPutAll:' until shiftKey pressed'.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10663
        ^ self.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10664
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10665
    ignoreEndTime notNil ifTrue:[
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10666
        aStream nextPutAll:' until '.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10667
        ignoreEndTime printOn:aStream.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10668
        ^ self.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10669
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10670
    (ignoreCount notNil) ifTrue:[
16535
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10671
        (ignoreCount > 0) ifTrue:[
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10672
            aStream nextPutAll:' for '.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10673
            ignoreCount printOn:aStream.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10674
            ^ self.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10675
        ].
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10676
        (ignoreCount < 0) ifTrue:[
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10677
            aStream nextPutAll:' forEver'.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10678
            ^ self.
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10679
        ].
71fe67678cae #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16501
diff changeset
 10680
        aStream nextPutAll:' no longer'.
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10681
    ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10682
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10683
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10684
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10685
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10686
haltIgnoredInfoString
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10687
    "some string describing why and how this halt is ignored;
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10688
     nil if not ignored"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10689
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10690
    ^ String streamContents:[:s |
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10691
        s nextPutAll:'ignored '.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10692
        self printConditionOn:s
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10693
    ].
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10694
13764
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10695
"/    ignoreCount notNil ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10696
"/        ignoreCount > 0 ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10697
"/            ^ '%1 more calls ignored' bindWith:ignoreCount
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10698
"/        ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10699
"/        ^ nil
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10700
"/    ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10701
"/    ignoreEndTime notNil ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10702
"/        (ignoreEndTime > Timestamp now) ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10703
"/            ^ 'ignored until %1' bindWith:ignoreEndTime
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10704
"/        ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10705
"/        ^ nil
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10706
"/    ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10707
"/    ignoreUntilShiftKeyPressed == true ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10708
"/        Screen current shiftDown ifFalse:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10709
"/            ^ 'ignored until shiftKey is pressed'
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10710
"/        ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10711
"/        ^ nil
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10712
"/    ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10713
"/    ignoredProcesses notNil ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10714
"/        ^ 'ignored in some processes'
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10715
"/    ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10716
"/    ignoredReceiverClasses notNil ifTrue:[
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10717
"/        ^ 'ignored for some receiver classes'
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10718
"/    ].
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10719
"/
225df800cafd Replace references to Diplay with "Screen current" - where appropriate
Stefan Vogel <sv@exept.de>
parents: 13666
diff changeset
 10720
"/    ^ 'ignored until reenabled'
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10721
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10722
    "Modified: / 27-01-2012 / 11:35:48 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10723
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10724
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10725
isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10726
    "true if this ignore-entry is still active"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10727
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10728
    ignoreEndTime notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10729
        ^ ignoreEndTime > Timestamp now
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10730
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10731
    ignoreCount notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10732
        ^ ignoreCount == -1 or:[ ignoreCount > 0 ]
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
 10733
    ].
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10734
    ignoredProcesses notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10735
        ignoredProcesses := ignoredProcesses reject:[:p | p notNil and:[p isDead]].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10736
        ignoredProcesses isEmpty ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10737
            ignoredProcesses := nil.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10738
            ^ false
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10739
        ].
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10740
    ].
12562
e05279313989 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12555
diff changeset
 10741
    ^ true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10742
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10743
    "Created: / 06-03-2012 / 12:39:46 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10744
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10745
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10746
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10747
    ^ false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10748
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10749
    "Modified: / 27-01-2012 / 11:36:01 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10750
    "Created: / 06-03-2012 / 12:47:02 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10751
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10752
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10753
isForBreakpointWithParameter:paramArg
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10754
    ^ false
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10755
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10756
    "Modified: / 27-01-2012 / 11:36:01 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10757
    "Created: / 06-03-2012 / 14:36:28 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10758
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10759
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10760
isHaltIgnored
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10761
    "true if this halt should be ignored (sometimes)"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10762
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10763
    ignoreUntilShiftKeyPressed == true ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10764
        ^ Screen current shiftDown not
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10765
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10766
    ignoreCount notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10767
        ^ ignoreCount > 0
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10768
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10769
    ignoreEndTime notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10770
        ^ ignoreEndTime > Timestamp now
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10771
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10772
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10773
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10774
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10775
    "Modified: / 27-01-2012 / 11:36:01 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10776
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10777
18181
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10778
!DebugView::IgnoredHalt class methodsFor:'instance creation'!
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10779
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10780
method:methodArg lineNumber:lineNumberArg
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10781
    ^ self new method:methodArg lineNumber:lineNumberArg
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10782
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10783
    "Created: / 05-06-2018 / 18:33:22 / Claus Gittinger"
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10784
! !
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10785
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10786
!DebugView::IgnoredHalt methodsFor:'accessing'!
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
 10787
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10788
method
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10789
    |m|
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10790
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10791
    weakMethodHolder == #all ifTrue:[^ weakMethodHolder ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10792
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10793
    m := weakMethodHolder at:1.
9796
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10794
"/ wait until really gone (it could still be on the call stack
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10795
"/
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10796
"/    m notNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10797
"/        m mclass isNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10798
"/            "/ no longer valid
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10799
"/            weakMethodHolder at:1 put:nil.
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10800
"/            ^ nil
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10801
"/        ].
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
 10802
"/    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
 10803
    ^ m
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
 10804
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10805
    "Modified: / 08-05-2011 / 10:28:10 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10806
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10807
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10808
method:methodArg lineNumber:lineNumberArg
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
 10809
    "/ self assert:(methodArg mclass notNil).
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10810
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10811
    methodArg == #all ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10812
        weakMethodHolder := methodArg
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10813
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10814
        weakMethodHolder := WeakArray with:methodArg.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10815
    ].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10816
    lineNumber := lineNumberArg.
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
 10817
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10818
    "Modified: / 08-05-2011 / 10:28:41 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10819
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10820
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10821
!DebugView::IgnoredHalt methodsFor:'printing'!
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10822
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10823
printOn:aStream
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10824
    |method|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10825
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10826
    (method := self method) isNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10827
        aStream nextPutAll:'an obsolete IgnoredHalt'.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10828
        ^ self
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10829
    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
 10830
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10831
    aStream nextPutAll:'Ignore '.
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
 10832
    method isSymbol ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10833
        method printOn:aStream.
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
 10834
    ] ifFalse:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10835
        method whoString printOn:aStream.
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
 10836
    ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10837
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10838
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
 10839
    "Modified: / 27-07-2012 / 23:04:42 / cg"
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10840
! !
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10841
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10842
!DebugView::IgnoredHalt methodsFor:'queries'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10843
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10844
isActive
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10845
    "true if this ignore-entry is still active"
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10846
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10847
    self method isNil ifTrue:[self breakPoint:#cg. ^ false ].    "/ method no longer valid
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10848
    ^ super isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10849
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10850
    "Modified: / 06-03-2012 / 12:40:20 / cg"
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10851
!
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10852
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10853
isForMethod:aMethod line:line
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10854
    "/ check in this order - method has a flushing side-effect, which is useful here...
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10855
    weakMethodHolder == #all ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10856
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10857
    ^ (aMethod = self method) and:[ line = lineNumber ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10858
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
 10859
    "Modified: / 08-05-2011 / 10:27:31 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10860
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10861
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10862
isHaltIgnoredInMethod:aMethod line:line
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10863
    ^ self isHaltIgnoredInMethod:aMethod line:line context:nil
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10864
!
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10865
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10866
isHaltIgnoredInMethod:aMethod line:line context:context
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
 10867
    "/ Transcript show:'?same as ign '; show:(weakMethodHolder at:1); show:' at '; showCR:lineNumber.
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
 10868
13059
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10869
"/    Transcript showCR:'-----------------------------'.
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10870
"/    Transcript showCR:aMethod.
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10871
"/    Transcript showCR:line.
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10872
"/    Transcript showCR:context.
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10873
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
 10874
    (self isForMethod:aMethod line:line) ifFalse:[^ false].
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
 10875
    "/ Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10876
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10877
    context notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10878
        ignoredReceiverClasses notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10879
            ^ ignoredReceiverClasses includes:(context receiver class)
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10880
        ].
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10881
    ].
13059
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10882
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10883
"/    Transcript showCR:ignoredProcesses.
8542618fd970 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12977
diff changeset
 10884
"/    Transcript showCR:Processor activeProcess.
12941
9605021cbfb8 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12937
diff changeset
 10885
    ignoredProcesses notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10886
        ^ ignoredProcesses includes:(Processor activeProcess)
12937
cf8330cc265e class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12929
diff changeset
 10887
    ].
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10888
    ignoredSendingClassAndSelectors notNil ifTrue:[
17185
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10889
        context withAllSendersDo:[:each |
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10890
            |m className selector cls|
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10891
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10892
            (m := each method) notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10893
                cls := m mclass.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10894
                cls notNil ifTrue:[
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10895
                    className := cls name.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10896
                    selector := m selector.
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10897
                    (ignoredSendingClassAndSelectors contains:[:entry | entry first = className and:[entry second = selector]])
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10898
                        ifTrue:[^ true].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10899
                ].
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10900
            ]
043fb3552c44 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17181
diff changeset
 10901
        ]
14608
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10902
    ].
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10903
948821582e7f class: DebugView
Claus Gittinger <cg@exept.de>
parents: 14559
diff changeset
 10904
    ^ self isHaltIgnored  "/ unconditionally
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10905
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
 10906
18621
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10907
!DebugView::IgnoredError methodsFor:'accessing'!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10908
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10909
action
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10910
    ^ action
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10911
!
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10912
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10913
action:something
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10914
    action := something.
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10915
! !
739516228796 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18605
diff changeset
 10916
18181
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10917
!DebugView::IgnoredBreakpoint class methodsFor:'instance creation'!
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10918
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10919
parameter:aParameter
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10920
    ^ self new parameter:aParameter
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10921
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10922
    "Created: / 05-06-2018 / 18:34:06 / Claus Gittinger"
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10923
! !
fedd01a948c4 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 18177
diff changeset
 10924
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10925
!DebugView::IgnoredBreakpoint methodsFor:'accessing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10926
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10927
parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10928
    ^ parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10929
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10930
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10931
parameter:something
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10932
    parameter := something.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10933
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10934
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10935
!DebugView::IgnoredBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10936
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10937
printOn:aStream
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10938
    aStream nextPutAll:'Ignore breakpoint:#', parameter.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10939
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10940
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10941
    "Created: / 06-03-2012 / 12:42:10 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10942
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10943
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10944
!DebugView::IgnoredBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10945
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10946
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10947
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10948
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10949
    "Created: / 06-03-2012 / 12:54:35 / cg"
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10950
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10951
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10952
isForBreakpointWithParameter:paramArg
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
 10953
Transcript showCR:parameter.
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10954
    ^ paramArg = parameter
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10955
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
 10956
    "Created: / 06-03-2012 / 14:36:21 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10957
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
 10958
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10959
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10960
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
 10961
version
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
 10962
    ^ '$Header$'
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
 10963
!
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
 10964
8952
7742c63ff6f5 catch halts in: #showSelection:
Claus Gittinger <cg@exept.de>
parents: 8745
diff changeset
 10965
version_CVS
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
 10966
    ^ '$Header$'
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
 10967
!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
 10968
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
 10969
version_SVN
15730
a2f192fe544c class: DebugView
Claus Gittinger <cg@exept.de>
parents: 15656
diff changeset
 10970
    ^ '$Id$'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10971
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10972
12106
0dd284890b62 class: DebugView
Claus Gittinger <cg@exept.de>
parents: 12080
diff changeset
 10973
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
 10974
DebugView initialize!