DebugView.st
author Claus Gittinger <cg@exept.de>
Wed, 26 Sep 2012 15:10:09 +0200
changeset 11819 0829ba326853
parent 11818 94fb736aa226
child 11828 6f99167accda
permissions -rw-r--r--
changed: #exit_restart leftover debug print
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     1
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 2
diff changeset
     2
 COPYRIGHT (c) 1989 by Claus Gittinger
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
     3
              All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     4
571fd5eee315 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
"
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
    12
"{ Package: 'stx:libtool' }"
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
    13
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    14
StandardSystemView subclass:#DebugView
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    15
	instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    16
		receiverInspector contextInspector contextArray selectedContext
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    17
		catchBlock grabber mayProceed traceView tracing bigStep
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    18
		skipLineNr steppedContextAddress abortButton terminateButton
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    19
		continueButton stepButton nextButton nextOverButton nextOutButton
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    20
		sendButton returnButton restartButton exclusive inspecting
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    21
		nChainShown inspectedProcess updateProcess stopButton
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    22
		updateButton defineButton monitorToggle stepping
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    23
		steppedContextLineno stepForReturn actualContext inWrap
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    24
		stackInspector steppedContext wrapperContext verboseBacktrace
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    25
		firstContext stepHow cachable currentMethod ignoreBreakpoints
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    26
		stepUntilEntering lastStepUntilEntering
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    27
		lastSelectionInReceiverInspector lastSelectionInContextInspector
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    28
		canShowMore exitAbort reportButton setOfHiddenCallingSelectors
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    29
		isStoppedAtHaltOrBreakPoint exceptionInfoLabel methodCodeToggle
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    30
		methodCodeToggleSelectionHolder
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    31
		isStoppedAtBreakPointWithParameter breakPointParameter
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    32
		hideSupportCode'
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    33
	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    34
		DebuggingDebugger DebuggingDebugger2
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    35
		DefaultDebuggerBackgroundColor InitialNChainShown IgnoredHalts
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    36
		ShowThreadID LastIgnoreHaltNTimes LastIgnoreHaltDuration
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    37
		LastExtent LastOrigin RememberedCallChain DebuggingDebugger3'
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    38
	poolDictionaries:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    39
	category:'Interface-Debugger'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    40
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    41
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    42
Object subclass:#IgnoredHaltOrBreakpoint
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    43
	instanceVariableNames:'ignoreEndTime ignoreCount ignoreUntilShiftKeyPressed'
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    44
	classVariableNames:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    45
	poolDictionaries:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    46
	privateIn:DebugView
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    47
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    48
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    49
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredHalt
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    50
	instanceVariableNames:'weakMethodHolder lineNumber'
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    51
	classVariableNames:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    52
	poolDictionaries:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    53
	privateIn:DebugView
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    54
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    55
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    56
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredBreakpoint
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    57
	instanceVariableNames:'parameter'
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    58
	classVariableNames:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    59
	poolDictionaries:''
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
    60
	privateIn:DebugView
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    61
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    62
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    63
!DebugView class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    64
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    65
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    66
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    67
 COPYRIGHT (c) 1989 by Claus Gittinger
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
    68
              All Rights Reserved
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    69
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    70
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    71
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    72
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    73
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    74
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    75
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    76
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    77
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    78
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    79
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    80
"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    81
    This class implements a graphical debugger interface.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    82
    The debugger usually sits on top of the faulting process,
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
    83
    taking over its event processing.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    84
    (this is different from other Smalltalk debuggers, which control
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    85
     the debuggee as a separate process. Consider this an historic
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    86
     leftover - the debugger was one of the first applications written for
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    87
     ST/X; however, why should we change it without a particular need ...).
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    88
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    89
    Only the 'stopped' debugged process is affected;
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    90
    other processes continue to respond to events.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    91
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    92
    The one exception is when an error occurs within the dispatcher process
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    93
    or in one of the eventhandler processes - in this case, the debugger
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    94
    will sit on an exclusive display connection.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    95
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    96
    The whole debugging will be changed, once the required process primitives
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    97
    are available, which allow control of another processes execution
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    98
    (i.e. single-step, restart & return). The setup will be changed then,
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    99
    to have the debugger control the debuggee (i.e. two processes)
35
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
   100
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
   101
    See additional information in 'doc/misc/debugger.doc'.
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   102
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   103
    Notice:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   104
        the DebugView class caches the last used debugger in a class
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   105
        variable. It may happen, that a malfunctioning debugger (for example,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   106
        a halfway destroyed one) is kept there. You will notice this, if a
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   107
        debugger comes up without showing any contents. In this case, close
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   108
        (or destroy) the broken debugView, and execute
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   109
            Debugger newDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   110
        which removes the cached debugger and forces creation of a new one the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   111
        next time. This is a temporary workaround - the debugger will be fixed to
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   112
        avoid this problem.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   113
        You also have to remove the cached debugger, if you change the debugger's
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   114
        initialization code (buttons, menu, etc.) and you want the new code to become
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   115
        effective.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   116
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   117
    [author:]
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   118
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   119
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   120
    [see also:]
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   121
        Exception Signal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   122
        Process
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   123
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   124
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   125
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   126
!DebugView class methodsFor:'initialization'!
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   127
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   128
initialize
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
   129
    InitialNChainShown := 50.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   130
    "/ DefaultDebuggerBackgroundColor := nil.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   131
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   132
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   133
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   134
    "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
   135
    "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
   136
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   137
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   138
reinitialize
7822
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   139
    "reinitialize after an image-restart"
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   140
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   141
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   142
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   143
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   144
!DebugView class methodsFor:'cleanup'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   145
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   146
lowSpaceCleanup
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   147
    "in low memory situations, give up cached debuggers"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   148
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   149
    CachedDebugger := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   150
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   151
    OpenDebuggers := nil.
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   152
    RememberedCallChain := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   153
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   154
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   155
     DebugView lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   156
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   157
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   158
    "Modified: / 08-03-2012 / 01:30:21 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   159
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   160
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   161
newDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   162
    "force creation of a new debugger (give up cached debuggers)"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   163
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   164
    CachedDebugger := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   165
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   166
    OpenDebuggers := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   167
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   168
    (Debugger isBehavior and:[Debugger name = #DebugView]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   169
        Debugger := self
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   170
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   171
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   172
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   173
     DebugView newDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   174
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   175
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   176
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   177
!DebugView class methodsFor:'defaults'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   178
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   179
defaultIcon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   180
    "return the browsers default window icon"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   181
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   182
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   183
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   184
    ^ ToolbarIconLibrary debug22x22Icon
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   185
    "/ ^ ToolbarIconLibrary debugIt20x20Icon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   186
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   187
    "Modified: / 11-02-2007 / 11:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   188
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   189
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   190
defaultIconForAboutBox
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   191
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   192
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   193
    ^ ToolbarIconLibrary debug22x22IconForBlackBackgound
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   194
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   195
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   196
defaultVerboseBacktrace
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   197
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   198
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   199
    ^ UserPreferences current verboseBacktraceInDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   200
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   201
    "Created: 11.1.1997 / 12:14:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   202
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   204
defaultVerboseBacktrace:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   205
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   206
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   207
    UserPreferences current verboseBacktraceInDebugger:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   208
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   209
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   210
updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   211
    "extract values from the styleSheet and cache them in class variables"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   212
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   213
    <resource: #style (#'debugView.viewBackgroundColor')>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   214
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   215
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   216
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   217
    "Modified: / 17.11.2001 / 17:31:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   218
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   219
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   220
!DebugView class methodsFor:'ignoring halts'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   221
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   222
haltIgnoreInformationFor:haltingMethod atLineNr:lineNrInHaltingMethod
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   223
    "the information (if any) about the ignore-state of a halt"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   224
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   225
    IgnoredHalts isNil ifTrue:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   226
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   227
    IgnoredHalts do:[:ign |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   228
        (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   229
            ^ ign
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   230
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   231
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   232
    ^ nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   233
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   234
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   235
hasIgnoredHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   236
    self removeInactiveIgnores.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   237
    ^ IgnoredHalts notEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   238
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   239
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   240
ignoreBreakpointWithParameter:parameterOrNil forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   241
    "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
   242
     or until some time has elapsed.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   243
     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
   244
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   245
    |oldEntry ign|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   246
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   247
    IgnoredHalts notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   248
        self removeInactiveIgnores.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   249
        oldEntry := IgnoredHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   250
                        detect:[:ign | ign isForBreakpointWithParameter:parameterOrNil]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   251
                        ifNone:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   252
        oldEntry notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   253
            IgnoredHalts remove:oldEntry ifAbsent:[].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   254
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   255
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   256
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   257
    (countOrNil notNil or:[dTOrNil notNil or:[untilShiftKey == true]]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   258
        IgnoredHalts isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   259
            IgnoredHalts := OrderedCollection new.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   260
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   261
        ign := IgnoredHalt new breakpointWithParameter:parameterOrNil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   262
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   263
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   264
            ign ignoreCount:countOrNil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   265
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   266
        (dTOrNil notNil) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   267
            ign ignoreEndTime:(Timestamp now + dTOrNil).
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   268
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   269
        untilShiftKey == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   270
            ign ignoreUntilShiftKeyPressed:true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   271
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   272
        IgnoredHalts add:ign.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   273
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   274
    Smalltalk changed:#ignoredHalts.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   275
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   276
    "Created: / 06-03-2012 / 12:37:58 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   277
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   278
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   279
ignoreHaltIn:haltingMethod at:lineNrOfHalt forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   280
    "remember to ignore a halt in some method for some number of invocations
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   281
     or until some time has elapsed.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   282
     With nil count and time arguments, such an ignored halt is reactivated"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   284
    |oldEntry ign|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   285
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   286
    IgnoredHalts notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   287
        self removeInactiveIgnores.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   288
        oldEntry := IgnoredHalts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   289
                        detect:[:ign | ign isForMethod:haltingMethod line:lineNrOfHalt]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   290
                        ifNone:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   291
        oldEntry notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   292
            IgnoredHalts remove:oldEntry ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   293
        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   294
    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   295
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   296
    (countOrNil notNil or:[dTOrNil notNil or:[untilShiftKey == true]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   297
        IgnoredHalts isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   298
            IgnoredHalts := OrderedCollection new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   299
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   300
        ign := IgnoredHalt new method:haltingMethod lineNumber:lineNrOfHalt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   301
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   302
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   303
            ign ignoreCount:countOrNil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   304
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   305
        (dTOrNil notNil) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   306
            ign ignoreEndTime:(Timestamp now + dTOrNil).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   307
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   308
        untilShiftKey == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   309
            ign ignoreUntilShiftKeyPressed:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   310
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   311
        IgnoredHalts add:ign.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   312
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   313
    Smalltalk changed:#ignoredHalts.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   314
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   315
    "Created: / 27-01-2012 / 11:33:38 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   316
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   317
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   318
isBreakpointToBeIgnoredForParameter:parameter modifyEntryCount:modifyCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   319
    "/ should a breakpoint be ignored ?
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   320
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   321
    IgnoredHalts isNil ifTrue:[^ false].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   322
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   323
    "/ 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
   324
    IgnoredHalts do:[:ign |
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
   325
        (ign isForBreakpointWithParameter:parameter) ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   326
            Transcript show:'Debugger [info]: break ignored for ', parameter.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   327
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   328
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   329
            ign isHaltIgnored ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   330
                Transcript showCR:'Debugger [info]: no longer ignore breakpoint for ', parameter.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   331
                IgnoredHalts remove:ign ifAbsent:[].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   332
            ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   333
            ^ true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   334
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   335
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   336
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   337
    IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   338
    IgnoredHalts isEmpty ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   339
        IgnoredHalts := nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   340
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   341
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   342
    ^ false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   343
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   344
    "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
   345
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   346
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   347
isHaltToBeIgnored
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   348
    |c sender haltingMethod lineNrInHaltingMethod breakpointParameter|
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   349
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   350
    "/ should a halt be ignored ?
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   351
    IgnoredHalts isNil ifTrue:[^ false].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   352
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   353
    "/ look for a breakpoint-wrapper's context
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   354
    c := thisContext findNextContextWithSelector:#doRaise or:nil or:nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   355
    c notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   356
        (c receiver isKindOf:NoHandlerError) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   357
            c := c sender findNextContextWithSelector:#doRaise or:nil or:nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   358
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   359
        (c receiver isKindOf:BreakPointInterrupt) ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   360
            c := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   361
        ] ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   362
            [ ((sender := c sender) receiver isKindOf:BreakPointInterrupt)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   363
            or:[ sender receiver == BreakPointInterrupt ]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   364
                c := sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   365
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   366
            [ (sender := c sender) isBlockContext ] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   367
                c := sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   368
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   369
            sender := nil. "/ avoid keeping a reference to this context
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   370
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   371
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   372
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   373
    c isNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   374
        "/ look for halts or explicit breakpoints
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   375
        c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   376
        c isNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   377
            c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   378
            c isNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   379
               ^ false
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   380
            ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   381
            breakpointParameter := c argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   382
            (self isBreakpointToBeIgnoredForParameter:breakpointParameter modifyEntryCount:true) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   383
                ^ true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   384
            ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   385
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   386
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   387
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   388
    c := c sender.
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   389
    "/ a code-breakpoint ?
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   390
    (c receiver isKindOf:Breakpoint) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   391
        c := c sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   392
    ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   393
    haltingMethod := c method.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   394
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   395
    haltingMethod isWrapped ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   396
        lineNrInHaltingMethod := 1.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   397
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   398
        lineNrInHaltingMethod := c lineNumber.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   399
        "/ Transcript showCR:c.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   400
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   401
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   402
    ^ self
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   403
        isHaltToBeIgnoredIn:haltingMethod
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   404
        atLineNr:lineNrInHaltingMethod
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   405
        modifyEntryCount:true.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   406
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   407
    "Created: / 22-10-2010 / 12:09:53 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   408
    "Modified: / 06-03-2012 / 12:54:09 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   409
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   410
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   411
isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   412
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   413
        isHaltToBeIgnoredIn:haltingMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   414
        atLineNr:lineNrInHaltingMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   415
        modifyEntryCount:false
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   416
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   417
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   418
isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod modifyEntryCount:modifyCount
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   419
    "should a halt be ignored ?"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   420
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   421
    IgnoredHalts isNil ifTrue:[^ false].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   422
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   423
    "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   424
    IgnoredHalts do:[:ign |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   425
        (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
11364
af95026ebbda changed: #isHaltToBeIgnoredIn:atLineNr:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11305
diff changeset
   426
            Transcript show:'Debugger [info]: halt/break ignored in ', haltingMethod whoString.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   427
            Transcript show:' ('; show:ign; showCR:')'.
11364
af95026ebbda changed: #isHaltToBeIgnoredIn:atLineNr:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11305
diff changeset
   428
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   429
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   430
            ign isHaltIgnored ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   431
                Transcript showCR:'Debugger [info]: no longer ignore halt in ', haltingMethod whoString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   432
                IgnoredHalts remove:ign ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   433
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   434
            ^ true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   435
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   436
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   437
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   438
    IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   439
    IgnoredHalts isEmpty ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   440
        IgnoredHalts := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   441
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   442
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   443
    ^ false.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   444
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   445
    "Modified (comment): / 06-03-2012 / 12:51:43 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   446
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   447
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   448
removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   449
    IgnoredHalts notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   450
        IgnoredHalts := IgnoredHalts select:[:i | i isActive].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   451
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   452
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   453
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   454
stopIgnoringHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   455
    "forget about all ignored halts"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   456
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   457
    IgnoredHalts := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   458
    Smalltalk changed:#ignoredHalts.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   459
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   460
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   461
!DebugView class methodsFor:'instance creation / entering'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   462
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   463
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   464
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   465
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   466
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   467
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   468
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   469
        enter:thisContext sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   470
        withMessage:'debugger entered'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   471
        mayProceed:true.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   472
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   473
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   474
enter:aContext withMessage:aString
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   475
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   476
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   477
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   478
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   479
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   480
        enter:aContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   481
        withMessage:aString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   482
        mayProceed:true
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   483
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   484
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   485
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   486
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   487
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   488
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   489
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   490
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   491
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   492
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
   493
    |active|
93
claus
parents: 92
diff changeset
   494
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   495
    DebuggingDebugger == true ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   496
        '==> enter1: (' print. aContext print. ')' printCR.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   497
    ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   498
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
   499
    StepInterruptPending := nil.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   500
    ControlInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   501
        'DebugView [info]: breakpoint in debugger setup ignored [enter.]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   502
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   503
        ex proceed
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   504
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   505
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   506
         well, it could be a stepping or sending debugger up there;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   507
         in this case, return to it. This happens, when a stepping process
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   508
         runs into an error (for example, a halt). In this case, we want the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   509
         stepping debugger to come up again instead of a new one.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   510
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   511
        OpenDebuggers notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   512
            active := Processor activeProcess.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   513
            OpenDebuggers do:[:aDebugger |
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   514
                |debuggersProcess|
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   515
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   516
                (aDebugger notNil and:[aDebugger ~~ 0]) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   517
                    debuggersProcess := aDebugger inspectedProcess.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   518
                    debuggersProcess == active ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   519
                        aDebugger device isOpen ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   520
                            DebuggingDebugger == true ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   521
                                'reusing cached debugger' errorPrintCR.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   522
                            ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   523
                            aDebugger unstep.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   524
                            aDebugger setLabelFor:aString in:active.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   525
                            aDebugger mayProceed:mayProceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   526
                            ^ aDebugger enter:aContext select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   527
                        ]
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   528
                    ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   529
                    (debuggersProcess notNil and:[ debuggersProcess isDead ]) ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   530
                        aDebugger destroy.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   531
                    ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   532
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   533
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   534
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   535
    ].
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   536
    ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   537
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
   538
    "Modified: / 17-07-2012 / 19:08:18 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   539
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   540
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   541
enterException:ex
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   542
    "enter a debugger; if this is a recursive invocation, enter
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   543
     a MiniDebugger instead.
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   544
     This is the standard way of entering the debugger;
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   545
     sent from error- and halt messages."
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   546
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   547
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   548
        enter:ex returnableSuspendedContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   549
        withMessage:ex descriptionForDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   550
        mayProceed:(ex mayProceed).
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   551
!
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   552
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   553
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   554
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   555
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   556
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   557
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   558
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   559
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   560
    StepInterruptPending := nil.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   561
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   562
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   563
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   564
    ControlInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   565
        'DebugView [info]: breakpoint in debugger setup ignored [enterUncond.]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   566
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   567
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   568
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   569
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   570
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   571
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   572
    aDebugger isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   573
        'DebugView [error]: cannot open debugger' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   574
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   575
        mayProceed ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   576
            (Dialog confirm:'Error/Breakpoint cought.\\Press Continue or Abort.' withCRs
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   577
                   yesLabel:'Continue' noLabel:'Abort')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   578
            ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   579
                ^ nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   580
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   581
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   582
            self information:'Error cought.\\Press OK to abort the operation.' withCRs.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   583
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   584
        AbortOperationRequest raise.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   585
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   586
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   587
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   588
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   589
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   590
    aDebugger enter:aContext select:nil.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   591
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   592
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   593
    "
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   594
        nil halt
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   595
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   596
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   597
    "Modified: / 18.11.2001 / 00:29:23 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   598
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   599
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   600
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   601
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   602
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   603
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   604
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   605
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   606
        enter:(thisContext sender)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   607
        withMessage:message
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   608
        mayProceed:true.
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   609
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   610
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   611
new
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   612
    "return a new DebugView.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   613
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   614
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   615
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   616
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   617
    |debugger currentScreen debuggerDevice|
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   618
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   619
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   620
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   621
    currentScreen notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   622
        (currentScreen suppressDebugger) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   623
            "/ no debuggers with that device - show an alertBox which aborts...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   624
            ^ nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   625
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   626
        (currentScreen mayOpenDebugger) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   627
            "/ no debugger on that device - but on the main screen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   628
            currentScreen := Screen default.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   629
        ].
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   630
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   631
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   632
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   633
     need a blocking debugger if no processes or
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   634
     or if its a timing/interrupt process
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   635
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   636
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   637
    Processor activeProcessIsSystemProcess ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   638
        ((debugger := CachedExclusive) isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   639
        or:[debugger device ~~ currentScreen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   640
        or:[currentScreen isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   641
        or:[currentScreen isOpen not]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   642
            debugger := self newExclusive
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   643
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   644
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   645
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   646
        CachedDebugger notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   647
            (CachedDebugger device ~~ currentScreen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   648
            or:[currentScreen isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   649
            or:[currentScreen isOpen not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   650
            or:[CachedDebugger class ~~ self]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   651
                CachedDebugger := nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   652
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   653
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   654
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   655
        (debugger := CachedDebugger) notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   656
            CachedDebugger := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   657
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   658
            debuggerDevice := currentScreen.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   659
            debuggerDevice isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   660
                "/ use the default display
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   661
                debuggerDevice := Screen default.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   662
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   663
            (debuggerDevice isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   664
            or:[debuggerDevice isOpen not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   665
            "/ or:[debuggerDevice mayOpenDebugger not]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   666
            ]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   667
                "/ no debugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   668
                ^ nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   669
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   670
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   671
            Screen currentScreenQuerySignal answer:debuggerDevice
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   672
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   673
                debugger := super new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   674
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   675
            debugger label:'Debugger'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   676
            debugger icon:self defaultIcon.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   677
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   678
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   679
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   680
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   681
    "Modified: 31.7.1997 / 21:20:27 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   682
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   683
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   684
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   685
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   686
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   687
    |debugger|
105
claus
parents: 101
diff changeset
   688
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   689
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   690
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   691
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   692
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   693
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   694
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   695
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   696
!
claus
parents: 101
diff changeset
   697
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   698
openOn:aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   699
    "start a  debugger on aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   700
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   701
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   702
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   703
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   704
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   705
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   706
    aProcess notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   707
        nm := aProcess name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   708
        nm notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   709
            nm := (nm contractTo:17) , '-' , aProcess id printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   710
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   711
            nm := aProcess id printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   712
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   713
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   714
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   715
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   716
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   717
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   718
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   719
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   720
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   721
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
   722
! !
claus
parents: 124
diff changeset
   723
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   724
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   725
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   726
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   727
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   728
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   729
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   730
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   731
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   732
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   733
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   734
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   735
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   736
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   737
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   738
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   739
    <resource: #menu>
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   740
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   741
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   742
     #(Menu
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   743
        (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   744
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   745
            label: 'File'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   746
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   747
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   748
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   749
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   750
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   751
                  enabled: canSendEmail
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   752
                  label: 'Report a Bug via eMail...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   753
                  itemValue: doOpenReportMailApp
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   754
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   755
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   756
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   757
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   758
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   759
               (MenuItem
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   760
                  enabled: canCloseAllDebuggers
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   761
                  label: 'Close all Debuggers...'
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   762
                  itemValue: closeAllDebuggers
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   763
                  translateLabel: true
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   764
                  isVisible: isNotInspecting
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   765
                )
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   766
               (MenuItem
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   767
                  label: '-'
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   768
                )
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
   769
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   770
                  label: 'Exit'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   771
                  itemValue: closeRequest
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   772
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   773
                  isVisible: isInspecting
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   774
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   775
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   776
                  label: 'Close Debugger and Abort'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   777
                  itemValue: closeRequest
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   778
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   779
                  isVisible: isNotInspecting
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   780
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   781
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   782
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   783
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   784
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   785
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   786
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   787
            label: 'View'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   788
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   789
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   790
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   791
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   792
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   793
                  enabled: canShowMore
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   794
                  label: 'Show More WalkBack'
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   795
                  itemValue: showMoreWalkback
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   796
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   797
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   798
               (MenuItem
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   799
                  enabled: canShowMore
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   800
                  label: 'Show Full WalkBack'
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   801
                  itemValue: showFullWalkback
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   802
                  translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   803
                )
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   804
               (MenuItem
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   805
                  label: '-'
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   806
                )
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
   807
               (MenuItem
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   808
                  label: 'Show Dense WalkBack'
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   809
                  itemValue: showingDenseWalkback:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   810
                  translateLabel: true
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   811
                  hideMenuOnActivated: false
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   812
                  indication: showingDenseWalkback
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
   813
                )
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
   814
               (MenuItem
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
   815
                  label: 'Hide Support Code (Implementation of Enumerations, Exceptions etc.)'
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   816
                  itemValue: hideSupportCode:
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
   817
                  translateLabel: true
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   818
                  hideMenuOnActivated: false
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   819
                  indication: hideSupportCode
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
   820
                )
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
   821
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   822
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   823
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   824
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   825
                  label: 'Raise Debugger when Entering'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   826
                  itemValue: autoRaiseView:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   827
                  translateLabel: true
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
   828
                  hideMenuOnActivated: false
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   829
                  indication: autoRaiseView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   830
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   831
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   832
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   833
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   834
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   835
                  label: 'Settings...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   836
                  itemValue: openSettingsDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   837
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   838
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   839
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   840
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   841
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   842
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   843
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   844
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   845
            label: 'Process'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   846
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   847
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   848
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   849
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   850
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   851
                  label: 'Continue'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   852
                  itemValue: doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   853
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   854
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   855
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   856
                  label: 'Next (Line-Step)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   857
                  itemValue: doNext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   858
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   859
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   860
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   861
                  label: 'Step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   862
                  itemValue: doStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   863
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   864
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   865
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   866
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   867
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   868
               (MenuItem
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   869
                  label: 'Change Priority...'
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   870
                  itemValue: doChangeProcessPriority
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   871
                  translateLabel: true
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   872
                )
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   873
               (MenuItem
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   874
                  label: '-'
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   875
                )
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   876
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   877
                  label: 'Abort'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   878
                  itemValue: doAbort
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   879
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   880
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   881
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   882
                  enabled: abortAllIsHandled
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   883
                  label: 'Abort All'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   884
                  itemValue: doAbortAll
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   885
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   886
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   887
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   888
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   889
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   890
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   891
                  label: 'Terminate'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   892
                  itemValue: doTerminate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   893
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   894
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   895
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   896
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   897
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   898
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   899
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   900
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   901
            label: 'Context'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   902
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   903
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   904
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   905
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   906
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   907
                  enabled: canReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   908
                  label: 'Return'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   909
                  itemValue: doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   910
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   911
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   912
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   913
                  enabled: canRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   914
                  label: 'Restart'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   915
                  itemValue: doRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   916
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   917
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   918
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   919
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   920
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   921
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   922
                  enabled: hasContextSelected
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   923
                  label: 'Inspect'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   924
                  itemValue: inspectContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   925
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   926
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   927
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   928
                  label: 'Copy WalkBack Text'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   929
                  itemValue: copyWalkbackText
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   930
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   931
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   932
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   933
                  label: 'Bookmark Method in SystemBrowser'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   934
                  itemValue: addBrowserBookmark
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   935
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   936
                )
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   937
               (MenuItem
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   938
                  label: '-'
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   939
                  isVisible: false
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   940
                )
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   941
               (MenuItem
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   942
                  label: 'Find Handler For...'
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   943
                  itemValue: findHandlerFor
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   944
                  translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   945
                  isVisible: false
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   946
                )
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   947
               (MenuItem
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
   948
                  label: '-'
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   949
                )
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   950
               (MenuItem
11604
860ee581cae7 changed:
Claus Gittinger <cg@exept.de>
parents: 11602
diff changeset
   951
                  label: 'Remember Callchain && Highlight on Next Entry'
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   952
                  itemValue: rememberCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   953
                  translateLabel: true
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   954
                )
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   955
               (MenuItem
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   956
                  label: 'Clear Remembered Callchain'
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   957
                  itemValue: clearRememberedCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   958
                  translateLabel: true
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   959
                )
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   960
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   961
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   962
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   963
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   964
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   965
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   966
            label: 'Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   967
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   968
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   969
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   970
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   971
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   972
                  enabled: canBrowseImplementingClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   973
                  label: 'Browse Implementing Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   974
                  itemValue: browseImplementingClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   975
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   976
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   977
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   978
                  enabled: canBrowseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   979
                  label: 'Browse Receivers Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   980
                  itemValue: browseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   981
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   982
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   983
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   984
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   985
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   986
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   987
                  enabled: canBrowseClassHierarchy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   988
                  label: 'Browse Receivers Class Hierarchy'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   989
                  itemValue: browseClassHierarchy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   990
                  translateLabel: true
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
   991
                  isVisible: false
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   992
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   993
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   994
                  enabled: canBrowseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   995
                  label: 'Browse Receivers Full Protocol'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   996
                  itemValue: browseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   997
                  translateLabel: true
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
   998
                  isVisible: false
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   999
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1000
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1001
                  label: '-'
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  1002
                  isVisible: false
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1003
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1004
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1005
                  enabled: canBrowseProcessesApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1006
                  label: 'Browse Application Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1007
                  itemValue: browseProcessesApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1008
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1009
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1010
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1011
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1012
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1013
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1014
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1015
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1016
            label: 'Selector'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1017
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1018
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1019
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1020
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1021
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1022
                  label: 'Browse Implementors...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1023
                  itemValue: browseImplementorsOf
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1024
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1025
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1026
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1027
                  label: 'Browse Senders...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1028
                  itemValue: browseSendersOf
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1029
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1030
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1031
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1032
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1033
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1034
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1035
                  enabled: canDefineMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1036
                  label: 'Define Missing Method'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1037
                  itemValue: doDefineMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1038
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1039
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1040
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1041
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1042
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1043
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1044
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1045
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1046
            label: 'Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1047
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1048
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1049
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1050
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1051
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1052
                  enabled: canRemoveBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1053
                  label: 'Remove Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1054
                  itemValue: removeBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1055
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1056
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1057
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1058
                  label: 'Remove all Breakpoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1059
                  itemValue: removeAllBreakpoints
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1060
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1061
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1062
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1063
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1064
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1065
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1066
                  enabled: canAddBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1067
                  label: 'Add Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1068
                  itemValue: addBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1069
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1070
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1071
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1072
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1073
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1074
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1075
                  label: 'Ignore this Halt/BreakPoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1076
                  translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1077
                  submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1078
                 (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1079
                    (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1080
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1081
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1082
                        label: 'For Some Time...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1083
                        itemValue: openIgnoreHaltUntilTimeElapsedDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1084
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1085
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1086
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1087
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1088
                        label: 'For the Next N Times...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1089
                        itemValue: openIgnoreHaltNTimesDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1090
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1091
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1092
                     (MenuItem
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1093
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1094
                        label: 'Until Shift-Key is Pressed'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1095
                        itemValue: ignoreHaltUntilShiftKeyIsPressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1096
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1097
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1098
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1099
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1100
                        label: 'Forever (Until Ignoring is Stopped)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1101
                        itemValue: ignoreHaltForever
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1102
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1103
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1104
                     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1105
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1106
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1107
                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1108
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1109
               (MenuItem
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1110
                  enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1111
                  label: 'Ignore all BreakPoints with this Parameter'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1112
                  translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1113
                  submenu: 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1114
                 (Menu
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1115
                    (
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1116
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1117
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1118
                        label: 'For Some Time...'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1119
                        itemValue: openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1120
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1121
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1122
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1123
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1124
                        label: 'For the Next N Times...'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1125
                        itemValue: openIgnoreBreakpointsWithThisParameterNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1126
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1127
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1128
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1129
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1130
                        label: 'Until Shift-Key is Pressed'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1131
                        itemValue: ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1132
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1133
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1134
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1135
                        enabled: isStoppedAtBreakPointWithParameter
11370
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  1136
                        label: 'Forever (Reenable in BreakPoint-Browser)'
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1137
                        itemValue: ignoreBreakpointsWithThisParameterForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1138
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1139
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1140
                     )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1141
                    nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1142
                    nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1143
                  )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1144
                )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1145
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1146
                  label: 'Ignore all Halts/BreakPoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1147
                  translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1148
                  submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1149
                 (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1150
                    (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1151
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1152
                        label: 'For Some Time...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1153
                        itemValue: openIgnoreAllHaltsUntilTimeElapsedDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1154
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1155
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1156
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1157
                        label: 'Until Shift-Key is Pressed'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1158
                        itemValue: ignoreAllHaltsUntilShiftKeyIsPressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1159
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1160
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1161
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1162
                        label: 'Forever (Until Ignoring is Stopped)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1163
                        itemValue: ignoreAllHaltsForever
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1164
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1165
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1166
                     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1167
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1168
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1169
                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1170
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1171
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1172
                  enabled: hasHaltsToIgnore
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1173
                  label: 'Stop Ignoring'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1174
                  itemValue: stopIgnoringHalts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1175
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1176
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1177
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1178
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1179
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1180
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1181
                  label: 'Manage Breakpoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1182
                  itemValue: openBreakPointBrowser
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1183
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1184
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1185
               (MenuItem
11443
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  1186
                  label: 'Allow Halt in Debugger'
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1187
                  itemValue: allowBreakPointsInDebugger:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1188
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1189
                  indication: allowBreakPointsInDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1190
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1191
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1192
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1193
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1194
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1195
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1196
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1197
            label: 'Help'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1198
            translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1199
            startGroup: right
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1200
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1201
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1202
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1203
               (MenuItem
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  1204
                  label: 'Debugger''s Documentation'
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1205
                  itemValue: openHTMLDocument:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1206
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1207
                  argument: 'tools/debugger/TOP.html'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1208
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1209
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1210
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1211
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1212
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1213
                  label: 'About DebugView...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1214
                  itemValue: openAboutThisApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1215
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1216
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1217
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1218
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1219
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1220
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1221
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1222
         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1223
        nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1224
        nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1225
      )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1226
! !
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1227
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1228
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1229
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
  1230
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1231
    "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
  1232
     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
  1233
     and Exception contexts, to present the context in which the error
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1234
     actually occured.
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1235
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1236
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1237
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1238
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1239
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
  1240
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1241
    idx := 1.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1242
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1243
        someContexts at:idx put:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1244
        con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1245
        idx := idx + 1.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1246
    ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1247
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1248
    ^ someContexts at:idx.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1249
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1250
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1251
interestingContextIndexIn:aContextArray
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1252
    "return an interesting contexts offset, or nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1253
     This is the context initially shown in the walkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1254
     We move up the calling chain, skipping all intermediate Signal
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1255
     and Exception contexts, to present the context in which the error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1256
     actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1257
     Just for your convenience :-)"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1258
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1259
    |con found offset sel prev ex rcvr nMax idx|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1260
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  1261
"/ Transcript showCR:aContextArray.
7648
acfbc051149f *** empty log message ***
ca
parents: 7647
diff changeset
  1262
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1263
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1264
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1265
    con := aContextArray at:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1266
    con isBlockContext ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1267
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1268
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1269
    "/ find the exception
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1270
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1271
    1 to:5 do:[:i |
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1272
        con := aContextArray at:i ifAbsent:nil.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1273
        con notNil ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1274
            sel := con selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1275
            (sel startsWith:'raise') ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1276
                rcvr := con receiver.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1277
                (rcvr isLazyValue not and:[rcvr isException]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1278
                    ex := rcvr.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1279
                    offset := i.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1280
                    found := con
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1281
                ] ifFalse:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1282
                    (rcvr isLazyValue not and:[rcvr isExceptionCreator]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1283
                        offset := i.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1284
                        found := con
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1285
                    ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1286
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1287
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1288
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1289
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1290
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1291
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1292
     if this is a noHandler exception, skip forward
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1293
     to the erronous context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1294
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1295
    ex notNil ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1296
        ex signal == Signal noHandlerSignal ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1297
            found := ex suspendedContext
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1298
        ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1299
    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1300
"/ Transcript show:'1 '; showCR:found.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1301
    found isNil ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1302
        "/ this is a kludge, but convenient.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1303
        "/ show the place where the error (divisionByZero...) happend,
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1304
        "/ not where the signal was raised.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1305
        con := (aContextArray at:1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1306
        sel := con methodHome selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1307
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1308
        "/ typically a DivisionByZero - show caller of division
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1309
        (sel == #//
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1310
        or:[sel == #/
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1311
        or:[sel == #\\]]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1312
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1313
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1314
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1315
        "/ show the place of the bad message; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1316
        (sel == #doesNotUnderstand:) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1317
            idx := 3.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1318
            nMax > 2 ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1319
                sel := (aContextArray at:idx) selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1320
                sel == #doesNotUnderstand: ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1321
                    idx := 4
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1322
                ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1323
                nMax > idx ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1324
                    sel := (aContextArray at:idx) selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1325
                    "/ show the place of the perfor-send; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1326
                    ((sel == #perform:)
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1327
                    or:[sel startsWith:'perform:with']) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1328
                        idx := idx + 1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1329
                    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1330
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1331
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1332
            ^ idx min:nMax
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1333
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1334
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1335
        "/ show the bad method; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1336
        (sel == #noByteCode) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1337
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1338
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1339
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1340
"/        "/ 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
  1341
"/        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1342
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1343
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1344
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1345
"/        "/ 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
  1346
"/        (sel == #shouldImplement) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1347
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1348
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1349
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1350
"/        "/ 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
  1351
"/        ((sel == #error:mayProceed:)
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1352
"/        or:[ sel == #signalFailure:resumable:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1353
"/            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1354
"/                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1355
"/                sel == #mustBeBoolean ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1356
"/                    ^ 3
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1357
"/                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1358
"/            ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1359
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1360
"/        ].
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
  1361
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1362
        "/ show the place of signalInterrupt-call; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1363
        (sel == #signalInterrupt:) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1364
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1365
        ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1366
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1367
"/        "/ 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
  1368
"/        ((sel == #error) or:[sel == #error:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1369
"/            con method mclass == Object ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1370
"/                ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1371
"/            ]
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1372
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1373
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1374
"/        "/ 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
  1375
"/        (sel == #subclassResponsibility) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1376
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1377
"/        ].
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  1378
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1379
        "/ show the place of the bad index; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1380
        ( #(#notIndexed
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1381
            #indexNotIntegerOrOutOfBounds:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1382
            #subscriptBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1383
            #elementBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1384
            "/ #subclassResponsibility
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1385
        ) includes:sel) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1386
            idx := 2.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1387
            [ idx <= 3
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1388
                and:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1389
                    sel := (aContextArray at:idx) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1390
                    #(#notIndexed
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1391
                      #indexNotIntegerOrOutOfBounds:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1392
                      #subscriptBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1393
                      #elementBoundsError: ) includes:sel
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1394
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1395
            ] whileTrue:[ idx := idx + 1 ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1396
            sel := (aContextArray at:idx) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1397
            (nMax > idx and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1398
            ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1399
                sel := (aContextArray at:idx+1) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1400
                (nMax > (idx+1) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1401
                ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1402
                    sel := (aContextArray at:idx+2) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1403
                    (nMax > (idx+2) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1404
                    ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1405
                        ^ idx+3
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1406
                    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1407
                    ^ idx+2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1408
                ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1409
                ^ idx+1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1410
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1411
            ^ idx
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1412
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1413
        offset := 1.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1414
    ].
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1415
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1416
    "/ the above is all too hard-coded;
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1417
    "/ 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
  1418
    "/ as more methods get flagged, remove code from above.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1419
    con := aContextArray at:offset ifAbsent:nil.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1420
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1421
    [
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1422
        con notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1423
        and:[ con methodHome notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1424
        and:[ con methodHome method notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1425
        and:[ con methodHome method shouldBeSkippedInDebuggersWalkBack ]]]
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1426
    ] whileTrue:[
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1427
"/ Transcript showCR:con methodHome method.
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1428
        offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1429
        con := aContextArray at:offset ifAbsent:nil.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1430
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1431
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1432
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1433
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1434
     Exception contexts
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1435
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1436
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1437
    rcvr := con receiver.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1438
    [
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1439
        rcvr isLazyValue not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1440
    ] whileTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1441
        prev := con.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1442
        nMax > offset ifFalse:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1443
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1444
        offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1445
        con := aContextArray at:offset.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1446
        rcvr := con receiver.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1447
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1448
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1449
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1450
     now, we are one above the raising context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1451
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1452
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1453
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1454
     if the sender-method of the raise is one of objects error methods ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1455
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1456
    ( #( halt halt:
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1457
         error error:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1458
         doesNotUnderstand:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1459
         subclassResponsibility
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1460
         primitiveFailed) includes:con selector)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1461
    ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1462
        con selector == #doesNotUnderstand: ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1463
            "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1464
             one more up, to get to the originating context
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1465
            "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1466
            con := aContextArray at:(offset + 1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1467
            con isNil ifTrue:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1468
            offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1469
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1470
        con := aContextArray at:(offset + 1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1471
        con isNil ifTrue:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1472
        offset := offset + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1473
    ] ifFalse:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1474
        "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1475
         ok, got the raise - if its a BreakPoint, look for the sender
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1476
        "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1477
        (prev notNil and:[prev receiver == BreakPointInterrupt]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1478
            offset := offset + 1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1479
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1480
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1481
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1482
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1483
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  1484
    "Created: / 17-11-2001 / 20:37:49 / cg"
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1485
    "Modified: / 08-07-2011 / 13:15:49 / cg"
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1486
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1487
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1488
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1489
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1490
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1491
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1492
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1493
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1494
    m notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1495
        self updateMenuItems.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1496
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1497
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1498
            abortButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1499
            m enable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1500
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1501
            abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1502
            m disable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1503
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1504
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1505
            terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1506
            m disable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1507
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1508
            terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1509
            m enable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1510
        ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1511
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1512
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1513
    mayProceed == false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1514
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1515
        m notNil ifTrue:[m disable:#doContinue].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1516
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1517
        continueButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1518
        m notNil ifTrue:[m enable:#doContinue]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1519
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1520
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1521
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1522
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1523
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  1524
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1525
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1526
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1527
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1528
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1529
9076
Claus Gittinger <cg@exept.de>
parents: 9034
diff changeset
  1530
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1531
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1532
    DebuggingDebugger == true ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  1533
        '==> enter2: (' print. aContext print.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1534
        ') select: ' print. initialSelectionOrNil printCR.
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1535
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1536
    thisContext isRecursive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1537
        "/ care for the special case, were the Debugger was autoloaded.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1538
        "/ in this case, thisContext IS recursive, but thats no error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1539
        "/ condition.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1540
        foundNoByteCodeContext := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1541
        foundExitContext := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1542
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1543
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1544
        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1545
         foundNoByteCodeContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1546
         and:[ foundExitContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1547
         and:[c notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1548
         and:[c selector ~~ #enter:withMessage:mayProceed:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1549
        ]]]]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1550
        whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1551
            c selector == #exit_unwindThenDo: ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1552
                foundExitContext := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1553
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1554
            c selector == #noByteCode ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1555
                foundNoByteCodeContext := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1556
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1557
            c := c findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1558
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1559
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1560
        (foundNoByteCodeContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1561
        and:[ foundExitContext not]) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1562
            ('DebugView [warning]: reentered') errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1563
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1564
            ^ MiniDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1565
                enter:aContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1566
                withMessage:'DebugView [error]: recursive error (in debugger)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1567
                mayProceed:mayProceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1568
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1569
        foundExitContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1570
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1571
            ^ self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1572
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1573
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1574
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1575
    "/'entering: ' print. aContext printCR.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1576
    "/'initial: ' print. initialSelectionOrNil printCR.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1577
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1578
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  1579
    self class isHaltToBeIgnored ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1580
        ^ self.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1581
    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1582
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1583
    iAmNew := drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1584
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1585
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1586
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1587
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1588
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1589
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1590
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1591
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1592
    stepHow := nil.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1593
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1594
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1595
    "/ if debugger is entered while a box has grabbed the
9076
Claus Gittinger <cg@exept.de>
parents: 9034
diff changeset
  1596
    "/ 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
  1597
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1598
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1599
    "/ 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
  1600
    "/    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
  1601
    "/    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
  1602
    Screen allScreens do:[:aScreen |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1603
        aScreen ungrabPointer.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1604
        aScreen ungrabKeyboard.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1605
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1606
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1607
    ("inspectedProcess suspendedContext isNil
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  1608
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1609
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1610
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1611
        terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1612
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1613
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1614
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1615
    iAmNew ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1616
        "/ not the first time - disable buttons & menus
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1617
        "/ from the previous life
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1618
        self turnOffAllButtons.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1619
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1620
        m := contextView middleButtonMenu.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1621
        m notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1622
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1623
        ].
11697
e776722de7b5 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11696
diff changeset
  1624
        self showingDenseWalkback:(verboseBacktrace not).
132
claus
parents: 127
diff changeset
  1625
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1626
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  1627
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1628
    windowGroup isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1629
        self windowGroup: WindowGroup new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1630
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1631
    ].
132
claus
parents: 127
diff changeset
  1632
    exclusive ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1633
        "/ create a (modal) windowGroup for myself
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1634
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1635
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1636
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1637
        "/ create a windowGroup with a synchronous sensor for me
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1638
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1639
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1640
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1641
    windowGroup setProcess:Processor activeProcess.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1642
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1643
     get the walkback list; clear inspectors if we did not come here by single stepping)
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1644
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1645
    self setContext:aContext releaseInspectors:(exitAction ~~ #step).
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1646
    "/'after setContext; first is ' print.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1647
    "/(contextArray at:1 ifAbsent:nil) printCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1648
    self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1649
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1650
    self updateButtonsAndMenuItemsForContext:aContext.
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1651
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1652
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1653
     If this is a new debugger, do a realize.
528
a5ba1a3d0b45 Rename unrealize-->unmap, rerealize-->map.
Stefan Vogel <sv@exept.de>
parents: 527
diff changeset
  1654
     Otherwise, its probably better to do a map, which shows the
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1655
     view at the previous position, without a need for the user to set the
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1656
     position again
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1657
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1658
    iAmNew ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1659
        self remap.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1660
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1661
        self realize.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1662
    ].
8193
9a4febdd8202 Raise debugger to the very top when entering
Stefan Vogel <sv@exept.de>
parents: 8181
diff changeset
  1663
    self setForegroundWindow.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1664
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1665
    exclusive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1666
        self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1667
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
  1668
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1669
This is a modal debugger - all event processing is stopped..
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1670
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
  1671
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
  1672
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1673
Also, there is no event processing (redraw) for other views.'
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1674
    ].
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1675
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1676
    self autoRaiseView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1677
        "/ self raise.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1678
        self raiseDeiconified.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1679
        self topView activate; setForegroundWindow; activate.
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1680
    ].
1486
6ae442626f20 wait until visible before starting to draw
Claus Gittinger <cg@exept.de>
parents: 1484
diff changeset
  1681
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1682
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1683
    exitAction := nil.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1684
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1685
    "/ enter private event handling loop. This is left (and we come back here again)
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1686
    "/ when any button was pressed which requires continuation of the debuggee or
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1687
    "/ closedown of the debugger.
3701
ef73aac8e8d5 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 3694
diff changeset
  1688
    [self controlLoop] ifCurtailed:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1689
        windowGroup notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1690
            windowGroup setProcess:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1691
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1692
        self destroy
132
claus
parents: 127
diff changeset
  1693
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1694
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1695
    "/ here after my own control loop is finished.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1696
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1697
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1698
    "/ 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
  1699
    "/ 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
  1700
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1701
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1702
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1703
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1704
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1705
    ObjectMemory stepInterruptHandler == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1706
        ObjectMemory stepInterruptHandler:nil.
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1707
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1708
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1709
    (exitAction ~~ #step) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  1710
        "/ not stepping or continue - close window
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1711
        lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1712
        lastSelectionInContextInspector := contextInspector selectedKeyName.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  1713
        self cacheMyself.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1714
        receiverInspector release.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1715
        contextInspector release.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1716
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1717
        self unmap.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1718
        device flush.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1719
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1720
        (exitAction == #abort) ifTrue:[ self exit_abort. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1721
        (exitAction == #abortAll) ifTrue:[ self exit_abortAll. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1722
        (exitAction == #return) ifTrue:[ self exit_return. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1723
        (exitAction == #restart) ifTrue:[ self exit_restart. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1724
        (exitAction == #quickTerminate) ifTrue:[ self exit_quickTerminate. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1725
        (exitAction == #terminate) ifTrue:[ self exit_terminate. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1726
        exitAction isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1727
            self exit_unwindThenDo:exitAction.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1728
            "does not return"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1729
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1730
        "not reached"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1731
        ^ self
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1732
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1733
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1734
    "/ stepping - window stays open
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1735
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1736
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  1737
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1738
    grabber notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1739
        device grabPointerInView:grabber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1740
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1741
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1742
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1743
    (exitAction == #step) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1744
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1745
         schedule another stepInterrupt
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1746
         - must enter myself into the collection of open debuggers,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1747
           in case the stepping process comes back again via a halt or signal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1748
           before the step is finished. In this case, the stepping debugger should
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1749
           come up (instead of a new one)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1750
         - must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1751
           look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1752
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1753
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1754
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1755
        "/ also must care for stepping into a return
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1756
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1757
        steppedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1758
            Processor activeProcess forceInterruptOnReturnOf:steppedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1759
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1760
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1761
        OpenDebuggers isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1762
            OpenDebuggers := WeakIdentitySet new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1763
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1764
        OpenDebuggers add:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1765
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1766
        self label:'single stepping - please wait ...'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1767
        stepping := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1768
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1769
        ObjectMemory stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1770
        Processor activeProcess stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1771
        ObjectMemory flushCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1772
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1773
        Context singleStepInterruptRequest isHandled ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1774
            Context singleStepInterruptRequest
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1775
                raiseWith:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1776
                    (("bigStep" steppedContextLineno notNil)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1777
                        ifTrue:[#next]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1778
                        ifFalse:[#step])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1779
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1780
            "/ see if we came here through an interrupt-action
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1781
            "/ (i.e. aProcess interruptWith:...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1782
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1783
            enteredByInterrupt := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1784
            con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1785
            [enteredByInterrupt not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1786
             and:[con notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1787
             and:[con ~~ aContext]]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1788
                ((sel := con selector) == #timerInterrupt
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1789
                or:[sel == #ioInterrupt]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1790
                    enteredByInterrupt := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1791
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1792
                    con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1793
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1794
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1795
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1796
            ObjectMemory flushInlineCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1797
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1798
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1799
                enteredByInterrupt printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1800
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1801
            enteredByInterrupt ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1802
                "/ dont want to step through all intermediate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1803
                "/ (scheduler-) contexts; place a return-trap on the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1804
                "/ one right below the interesting one
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1805
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1806
"/                'special unwind return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1807
                con unwindThenDo:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1808
                                  Processor activeProcess stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1809
                                  ObjectMemory stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1810
                                  InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1811
                                  StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1812
                                  InterruptPending := 1].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1813
            ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1814
"/                'normal step return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1815
                skipLineNr ~~ #return ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1816
                    StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1817
                    InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1818
                ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1819
"/                    'step for return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1820
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1821
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1822
            InStepInterrupt := nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1823
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1824
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1825
        OpenDebuggers notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1826
            OpenDebuggers remove:self ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1827
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1828
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1829
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1830
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1831
    "Modified: / 17-04-1997 / 13:01:32 / stefan"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1832
    "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
  1833
    "Modified: / 13-10-1998 / 19:56:59 / ps"
11697
e776722de7b5 changed: #enter:select:
Claus Gittinger <cg@exept.de>
parents: 11696
diff changeset
  1834
    "Modified: / 27-07-2012 / 17:35:56 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1835
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1836
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1837
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1838
    "/ 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
  1839
    "/ 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
  1840
    "/ 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
  1841
    "/ 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
  1842
    "/ 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
  1843
    "/ done in the #enter:select method.
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1844
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1845
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1846
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1847
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1848
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1849
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1850
    "/ 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
  1851
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1852
    "/ 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
  1853
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1854
    "/ 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
  1855
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1856
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1857
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1858
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1859
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1860
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1861
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1862
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1863
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1864
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1865
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1866
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1867
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1868
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1869
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1870
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1871
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1872
    selectedContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1873
        con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1874
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1875
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1876
         have to catch errors occuring in unwind-blocks
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1877
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1878
        Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1879
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1880
            ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1881
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1882
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1883
            con unwindAndRestart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1884
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1885
        'DebugView [warning]: cannot restart selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1886
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1887
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  1888
    "Created: / 16-11-2001 / 17:23:17 / cg"
11819
0829ba326853 changed: #exit_restart
Claus Gittinger <cg@exept.de>
parents: 11818
diff changeset
  1889
    "Modified: / 26-09-2012 / 15:09:52 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1890
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1891
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1892
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1893
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1894
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1895
    selectedContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1896
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1897
         if there is a selection in the codeView,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1898
         evaluate it and use the result as return value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1899
        "
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1900
"/ 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
  1901
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1902
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1903
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1904
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1905
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1906
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1907
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1908
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1909
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1910
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1911
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1912
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1913
"/                        retVal := codeView doItAction value:s.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1914
"/                    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1915
"/                ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1916
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1917
        con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1918
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1919
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1920
         have to catch errors occuring in unwind-blocks
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1921
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1922
        Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1923
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1924
            ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1925
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1926
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1927
            con unwind:retVal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1928
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1929
        'DebugView [warning]: cannot return from selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1930
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1931
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1932
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1933
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1934
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1935
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1936
exit_terminate
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1937
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1938
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1939
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1940
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1941
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1942
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1943
        ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1944
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1945
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1946
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1947
        Processor activeProcess terminate.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1948
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1949
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1950
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1951
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1952
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1953
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1954
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1955
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1956
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1957
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1958
    "/ 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
  1959
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1960
    "/ 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
  1961
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1962
    "/ 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
  1963
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1964
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1965
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1966
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1967
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1968
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1969
    self cacheMyself.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1970
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1971
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1972
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1973
        ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1974
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1975
        ex proceed
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1976
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1977
        "/ find the enter:select context.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1978
        con := thisContext sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1979
        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1980
            (con selector == #enter:select:)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1981
            and:[con receiver == self]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1982
        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1983
        whileFalse:[ con := con sender ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1984
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1985
        "/ must skip over its caller (because this one has a ControlInterrupt handler too)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1986
        con sender receiver == self class ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1987
            con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1988
            con sender receiver == self class ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1989
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1990
                con isBlockContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1991
                    con := con methodHome.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1992
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1993
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1994
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1995
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1996
        con unwindThenDo:aBlock.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1997
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1998
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1999
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2000
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2001
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2002
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  2003
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2004
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2005
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2006
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2007
    initialSelectionOrNil notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2008
        ^ initialSelectionOrNil
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2009
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2010
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2011
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2012
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2013
     - 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
  2014
     - 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
  2015
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2016
     - otherwise, we came here by some signal raise, and we are interested
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2017
       in the context where the raise actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2018
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2019
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2020
    con2 := (contextArray at:2 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2021
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2022
    exitAction == #step ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2023
        selection := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2024
        steppedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2025
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2026
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2027
             if we came here by a big-step, show the method where we are
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2028
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2029
            con1 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2030
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2031
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2032
                con2 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2033
                    selection := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2034
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2035
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2036
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2037
             for bigStep, we could also be in a block below the actual method ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2038
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2039
            ((h := con1 home) notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2040
             and:[h == steppedContext]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2041
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2042
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2043
                (con2 notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2044
                and:[(h := con2 home) notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2045
                and:[h == steppedContext]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2046
                    selection := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2047
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2048
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2049
            h := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2050
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2051
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2052
        steppedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2053
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2054
             preselect a more interesting context, (where halt/raise was ...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2055
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2056
            "/ selection := self class interestingContextIndexFrom:aContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2057
            selection := self class interestingContextIndexIn:contextArray.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2058
            selection := selection min:(contextArray size).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2059
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2060
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2061
             if we came here by a big-step, show the method where we are
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2062
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2063
            con1 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2064
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2065
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2066
                con2 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2067
                    selection := 2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2068
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2069
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2070
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2071
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2072
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2073
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2074
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2075
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2076
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2077
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2078
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2079
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2080
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2081
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2082
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2083
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2084
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2085
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2086
openOn:aProcess
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2087
    "enter the debugger on a process -
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2088
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2089
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2090
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2091
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2092
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2093
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2094
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2095
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  2096
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2097
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2098
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2099
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2100
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2101
    inspectedProcess := aProcess.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2102
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2103
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2104
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2105
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2106
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2107
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2108
    continueButton label:(resources string:'Continue').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2109
    w := continueButton preferredWidth.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2110
    continueButton label:(resources string:'Stop').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2111
    w := w max:(continueButton preferredWidth).
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2112
    continueButton preferredExtent:(w @ continueButton preferredHeight).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2113
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2114
    aProcess state == #run ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2115
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2116
            continueButton foregroundColor:Color red darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2117
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2118
        continueButton label:(resources string:'Stop').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2119
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2120
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2121
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2122
            continueButton foregroundColor:Color green darkened darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2123
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2124
        continueButton label:(resources string:'Continue').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2125
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2126
    ].
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2127
    continueButton preferredExtent:(w @ continueButton preferredHeight).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2128
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2129
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2130
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2131
92
claus
parents: 90
diff changeset
  2132
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2133
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  2134
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2135
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2136
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2137
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2138
    updateButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2139
                        label:(resources string:'Update')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2140
                        action:[self updateContext]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2141
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2142
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2143
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2144
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2145
    monitorToggle releaseAction:[self autoUpdateOff].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2146
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2147
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2148
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2149
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2150
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2151
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2152
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2153
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2154
    stepButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2155
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2156
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2157
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2158
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2159
    aProcess isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2160
        terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2161
        abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2162
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2163
        returnButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2164
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2165
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2166
        (aProcess suspendedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2167
        or:[aProcess isSystemProcess]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2168
            terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2169
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2170
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2171
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2172
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2173
        catchBlock := [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2174
            catchBlock := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2175
            contextArray := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2176
            selectedContext := actualContext := firstContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2177
            steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2178
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2179
            (exitAction == #terminate) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2180
                aProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2181
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2182
            (exitAction == #quickTerminate) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2183
                aProcess terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2184
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2185
            super destroy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2186
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2187
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2188
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  2189
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  2190
    "Modified: 20.3.1997 / 16:53:56 / cg"
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  2191
    "Modified: 17.4.1997 / 13:01:57 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2192
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2193
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2194
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2195
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2196
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2197
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2198
    selection notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2199
        self showSelection:selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2200
        contextView setSelection:selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2201
        selection > 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2202
            contextView scrollToLine:(selection - 1)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2203
        ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2204
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2205
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2206
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2207
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2208
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2209
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2210
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2211
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2212
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2213
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2214
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2215
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2216
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2217
    stepButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2218
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2219
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2220
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2221
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2222
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2223
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2224
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2225
flyByHelpDependsOnPositionIn:aView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2226
    "subclasses where the help-text depends upon the pointer position might
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2227
     want to redefine this"
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2228
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2229
    ^ aView == codeView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2230
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2231
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2232
flyByHelpTextFor:aComponent
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2233
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2234
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2235
    aComponent == abortButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2236
        s := 'Abort (unwind to eventLoop)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2237
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2238
    aComponent == terminateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2239
        s := 'Terminate process (close view)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2240
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2241
    aComponent == continueButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2242
        continueButton label = (resources string:'Stop') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2243
            s := 'Stop'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2244
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2245
            s := 'Continue execution'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2246
        ]
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2247
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2248
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2249
        s := 'Step to next send (don''t enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2250
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2251
    aComponent == nextButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2252
        s := 'Step to next line (don''t enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2253
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2254
    aComponent == nextOverButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2255
        s := 'Step over to cursor-line'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2256
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2257
    aComponent == nextOutButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2258
        s := 'Step out to caller'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2259
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2260
    aComponent == sendButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2261
        s := 'Send next message (enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2262
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2263
    aComponent == returnButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2264
        s := 'Return from selected method'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2265
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2266
    aComponent == restartButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2267
        s := 'Restart selected method'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2268
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2269
    aComponent == monitorToggle ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2270
        s := 'Toggle monitoring'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2271
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2272
    aComponent == updateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2273
        s := 'Update'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2274
    ].
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  2275
    aComponent == reportButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2276
        s := 'Send a defect report via eMail'
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  2277
    ].
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2278
    s notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2279
        ^ resources string:s
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2280
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2281
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2282
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  2283
    "Modified: / 29-08-1995 / 23:38:54 / claus"
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  2284
    "Modified: / 18-06-2010 / 11:34:51 / cg"
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2285
!
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2286
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2287
flyByHelpTextFor:aComponent at:aPointOrNil
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2288
    |s vline line col pos interval|
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2289
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2290
    aComponent == codeView ifFalse:[^ nil].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2291
    aPointOrNil isNil ifTrue:[^ nil].
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2292
    self sensor motionEventPending ifTrue:[^ nil].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2293
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2294
    vline := codeView visibleLineOfY:aPointOrNil y.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2295
    col := codeView colOfX:aPointOrNil x inVisibleLine:vline.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2296
    line := codeView visibleLineToAbsoluteLine:vline.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2297
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2298
    pos := codeView characterPositionOfLine:line col:col.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2299
    interval := pos to:pos.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2300
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2301
    self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2302
        withNodeValueAtInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2303
        do:[:value :description |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2304
            |valueClassOrSizeString valueString|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2305
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2306
            valueClassOrSizeString := valueString := ''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2307
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2308
            "/ some heuristics as when to show the class name (a purely subjective preference)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2309
            value isString ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2310
                value isText ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2311
                    valueString := '"',(value contractTo:80),'"'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2312
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2313
                    valueString := value storeString contractTo:80.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2314
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2315
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2316
                (value isBoolean
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2317
                or:[ value isInteger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2318
                or:[ value isSymbol ]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2319
                    valueString := value printString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2320
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2321
                    valueClassOrSizeString := ' (',value class name,')'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2322
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2323
                    (value isArray
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2324
                    or:[ value isOrderedCollection ]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2325
                        valueClassOrSizeString := ' (size=',value size printString,')'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2326
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2327
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2328
                    Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2329
                        valueString := '??? (',ex description,')'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2330
                    ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2331
                        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2332
                            valueString := value printString contractTo:80.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2333
                        ] valueWithWatchDog:[ valueString := value classNameWithArticle ] afterMilliseconds:30.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2334
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2335
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2336
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2337
            description isEmptyOrNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2338
                s := valueString , valueClassOrSizeString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2339
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2340
                s := description , ': ', valueString, valueClassOrSizeString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2341
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2342
        ].
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  2343
    "/ Transcript showCR:s.
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  2344
    ^ s
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2345
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2346
    "Modified: / 27-04-2010 / 17:51:53 / cg"
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2347
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2348
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2349
helpTextFor:aComponent
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2350
    |s|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2351
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2352
    aComponent == abortButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2353
        s := 'HELP_ABORT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2354
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2355
    aComponent == terminateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2356
        s := 'HELP_TERMINATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2357
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2358
    aComponent == continueButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2359
        continueButton label = (resources string:'Stop') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2360
            s := 'HELP_STOP'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2361
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2362
            s := 'HELP_CONTINUE'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2363
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2364
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2365
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2366
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2367
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2368
    aComponent == nextButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2369
        s := 'HELP_NEXT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2370
    ].
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2371
    aComponent == nextOverButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2372
        s := 'HELP_NEXTOVER'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2373
    ].
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2374
    aComponent == nextOutButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2375
        s := 'HELP_NEXTOUT'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2376
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2377
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2378
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2379
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2380
    aComponent == sendButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2381
        s := 'HELP_SEND'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2382
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2383
    aComponent == returnButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2384
        s := 'HELP_RETURN'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2385
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2386
    aComponent == restartButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2387
        s := 'HELP_RESTART'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2388
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2389
    aComponent == contextView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2390
        s := 'HELP_WALKBACK'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2391
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2392
    aComponent == codeView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2393
        s := 'HELP_CODEVIEW'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2394
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2395
    aComponent == monitorToggle ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2396
        s := 'HELP_MONITOR'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2397
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2398
    aComponent == updateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2399
        s := 'HELP_UPDATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2400
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2401
"/    aComponent == stopButton ifTrue:[
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2402
"/        s := 'HELP_STOP'
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2403
"/    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  2404
    (aComponent isComponentOf:receiverInspector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2405
        s := 'HELP_REC_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2406
    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  2407
    (aComponent isComponentOf:contextInspector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2408
        s := 'HELP_CON_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2409
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2410
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2411
    s notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2412
        ^ resources string:s
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2413
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2414
    ^ nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2415
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2416
    "Modified: 29.8.1995 / 23:38:54 / claus"
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2417
    "Modified: 4.3.1997 / 01:54:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2418
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2419
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2420
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2421
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2422
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2423
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2424
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2425
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2426
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2427
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2428
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2429
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2430
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2431
    self destroyWithConfirmation:true
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2432
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2433
    "Modified: / 10-07-1997 / 17:15:41 / stefan"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2434
    "Modified: / 23-03-2012 / 12:50:01 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2435
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2436
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2437
destroyWithConfirmation:withConfirmation
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2438
    "closing the debugger implies an abort or continue"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2439
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2440
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2441
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2442
    withConfirmation ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2443
        self checkIfCodeIsReallyModified ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2444
            (self confirm:('Code modified - exit anyway ?'))
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2445
            ifFalse:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2446
                ^ self
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2447
            ]
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2448
        ]
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2449
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2450
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  2451
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  2452
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2453
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2454
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2455
        "I am running on top of a process, abort or continue it"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2456
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2457
        windowGroup notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2458
            windowGroup setProcess:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2459
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2460
        self uncacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2461
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2462
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2463
        "/ catch invalid return;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2464
        "/ this happens, when my process has somehow died (quickterminate)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2465
        "/ and I am a leftOver view, which gets terminated via the launchers
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2466
        "/ #destroy-window function.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2467
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2468
        Context cannotReturnSignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2469
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2470
            self uncacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2471
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2472
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2473
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2474
            AbortOperationRequest isHandled ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2475
                self doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2476
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2477
                self doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2478
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2479
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2480
        "/ We don't reach this point normally
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2481
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2482
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2483
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  2484
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2485
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2486
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2487
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2488
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2489
    "Modified: / 10-07-1997 / 17:15:41 / stefan"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  2490
    "Created: / 23-03-2012 / 12:49:50 / cg"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2491
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2492
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2493
initialize
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2494
    |menu menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel
11305
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2495
     newLayout v exceptionAndTogglePanel codeToggleLabels|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2496
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2497
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2498
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
  2499
    font := font onDevice:device.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2500
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  2501
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger ? false.
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
  2502
    hideSupportCode := UserPreferences current hideSupportCodeInDebugger ? false.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  2503
    ignoreBreakpoints := true.    "/ ignore halts/breakpoints in doIts of
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2504
                                  "/ the debugger
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  2505
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2506
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2507
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2508
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2509
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2510
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2511
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2512
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2513
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2514
    mH := 0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2515
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2516
    menuPanel := MenuPanel in:self.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2517
    menuPanel receiver:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2518
    menuPanel verticalLayout:false.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2519
    menu := self class menuSpec decodeAsLiteralArray.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2520
    menu findGuiResourcesIn:self.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2521
    menuPanel menu:menu.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2522
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2523
    mH := menuPanel preferredHeight.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2524
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2525
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2526
    newLayout := UserPreferences current useNewLayoutInDebugger.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2527
    newLayout ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2528
        bpanel := HorizontalPanelView in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2529
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2530
        self initializeButtonsIn:bpanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2531
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2532
        bH := bpanel preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2533
        bpanel origin:(0.0 @ mH)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2534
               extent:(1.0 @ bH).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2535
        panel := VariableVerticalPanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2536
                            origin:(0.0 @ (mH + bH))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2537
                            corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2538
                            in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2539
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2540
        v := self initializeContextListViewIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2541
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2542
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2543
        codePanel := View in:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2544
        v := self initializeCodeViewIn:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2545
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2546
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2547
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2548
        v := self initializeInspectorViewsIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2549
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2550
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2551
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2552
        bpanel1 := HorizontalPanelView in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2553
        self initializeButtons1In:bpanel1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2554
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2555
        bH1 := bpanel1 preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2556
        bpanel1 origin:(0.0 @ mH)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2557
                extent:(1.0 @ bH1).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2558
        panel := VariableVerticalPanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2559
                            origin:(0.0 @ (mH + bH1))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2560
                            corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2561
                                in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2562
        "/ panel showHandle:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2563
        "/ panel handlePosition:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2564
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2565
        v := self initializeContextListViewIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2566
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2567
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2568
        codePanel := View in:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2569
        bpanel2 := HorizontalPanelView in:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2570
        self initializeButtons2In:bpanel2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2571
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2572
        bH2 := bpanel2 preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2573
        bpanel2 origin:(0.0 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2574
                extent:(1.0 @ bH2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2575
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2576
        exceptionInfoLabel := Label label:''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2577
        exceptionInfoLabel adjust:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2578
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2579
        exceptionAndTogglePanel := HorizontalPanelView in:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2580
        exceptionAndTogglePanel horizontalLayout:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2581
        exceptionAndTogglePanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2582
            geometryLayout:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2583
                ((LayoutFrame
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2584
                    origin:(0.0 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2585
                    corner:(1.0 @ 0.0))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2586
                        topOffset:bH2;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2587
                        bottomOffset:(bH2 + exceptionInfoLabel preferredHeight + 6);
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2588
                        rightOffset:-2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2589
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2590
        methodCodeToggleSelectionHolder := 1 asValue.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2591
        methodCodeToggleSelectionHolder onChangeSend:#methodCodeToggleChanged to:self.
11305
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2592
        codeToggleLabels := resources array:{ 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2593
                    'Showing Original Code (being executed, but obsolete)' asText backgroundColorizeAllWith:Color red lightened . 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2594
                    'Showing Current Code'                                 asText backgroundColorizeAllWith:Color green lightened . 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2595
                  }.
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2596
        methodCodeToggle := PopUpList label:codeToggleLabels first in:exceptionAndTogglePanel.
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2597
        methodCodeToggle list:codeToggleLabels.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2598
        methodCodeToggle useIndex:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2599
        methodCodeToggle model:methodCodeToggleSelectionHolder.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2600
        methodCodeToggle beInvisible.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2601
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2602
        exceptionAndTogglePanel add:exceptionInfoLabel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2603
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2604
        v := self initializeCodeViewIn:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2605
        v origin:(0.0 @ (bH2+exceptionInfoLabel preferredHeight+6)) corner:(1.0 @ 1.0).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2606
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2607
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2608
        v := self initializeInspectorViewsIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2609
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2610
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2611
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2612
    DefaultDebuggerBackgroundColor notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2613
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2614
    ].
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2615
    LastExtent notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2616
        self extent:LastExtent.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2617
    ].
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2618
    LastOrigin notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2619
        self origin:LastOrigin.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2620
    ].
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2621
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2622
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2623
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2624
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2625
11693
367eaa0e1ead changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11661
diff changeset
  2626
    "Modified: / 27-07-2012 / 14:46:07 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2627
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2628
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2629
initializeAbortButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2630
    abortButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2631
                label:(resources string:'Abort')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2632
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2633
                    abortButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2634
                    self doAbort
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2635
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2636
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2637
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2638
    "Created: / 17.11.2001 / 20:56:47 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2639
    "Modified: / 17.11.2001 / 20:57:17 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2640
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2641
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2642
initializeButtons1In:bpanel
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2643
    "creates the top button row, consisting of 'continue', 'abort', 'terminate'..."
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2644
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2645
    |separator|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2646
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2647
    bpanel horizontalLayout:#left.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2648
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2649
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2650
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  2651
    self initializeContinueButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2652
    continueButton width:150.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2653
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2654
    "/ separator := View extent:(10 @ 5) in:bpanel.
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2655
    "/ separator borderWidth:0; level:0.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2656
    self initializeAbortButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2657
    abortButton width:150.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2658
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2659
    separator := View extent:(100 @ 5) in:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2660
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2661
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2662
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2663
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2664
    separator := View extent:(50 @ 5) in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2665
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2666
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2667
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2668
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2669
        separator := View extent:(10 @ 5) in:bpanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2670
        separator borderWidth:0; level:0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2671
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2672
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2673
    "Modified: / 17.11.2001 / 21:02:59 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2674
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2675
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2676
initializeButtons2In:bpanel
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2677
    "creates the second button row, consisting of 'next', 'step', 'return'..."
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2678
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2679
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2680
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2681
    bpanel horizontalLayout:#left.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2682
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2683
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2684
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2685
    self initializeNextButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2686
    nextButton width:100.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2687
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2688
    self initializeStepButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2689
    stepButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2690
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2691
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2692
"/ 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
  2693
"/ 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
  2694
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2695
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2696
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2697
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2698
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2699
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2700
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2701
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2702
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2703
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2704
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2705
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2706
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2707
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2708
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2709
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2710
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2711
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2712
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2713
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2714
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2715
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2716
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2717
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2718
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2719
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2720
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2721
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2722
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2723
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2724
    self initializeSendButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2725
    sendButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2726
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2727
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2728
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2729
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2730
    self initializeReturnButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2731
    returnButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2732
    self initializeRestartButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2733
    restartButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2734
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  2735
    "Modified: / 18-06-2010 / 08:32:05 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2736
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2737
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2738
initializeButtonsIn:bpanel
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2739
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2740
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2741
    bpanel horizontalLayout:#left.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2742
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2743
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2744
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2745
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2746
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2747
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2748
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2749
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2750
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2751
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2752
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2753
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2754
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2755
    self initializeReturnButtonIn:bpanel.
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2756
    self initializeRestartButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2757
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2758
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2759
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2760
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2761
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2762
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2763
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2764
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2765
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2766
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2767
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2768
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2769
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2770
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2771
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2772
"/        img := (resources at:'next')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2773
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2774
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2775
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2776
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2777
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2778
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2779
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2780
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2781
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2782
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2783
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2784
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2785
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2786
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2787
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2788
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2789
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2790
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2791
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2792
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2793
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2794
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2795
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2796
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2797
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2798
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2799
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2800
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2801
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2802
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2803
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2804
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2805
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2806
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2807
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2808
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2809
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2810
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2811
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2812
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2813
    "Created: / 17.11.2001 / 20:56:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2814
    "Modified: / 17.11.2001 / 21:03:18 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2815
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2816
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2817
initializeCodeViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2818
    |v|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2819
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2820
    (UserPreferences current useCodeView2In: #Debugger) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2821
        v := codeView := Tools::CodeView2 in: panel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2822
        codeView model: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2823
        codeView methodHolder: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2824
        codeView classHolder: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2825
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2826
        v := HVScrollableView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2827
                    for:CodeView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2828
                    miniScrollerH:true
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2829
                    miniScrollerV:false
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2830
                    in:panel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2831
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2832
    "/    v autoHideScrollBars:true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2833
        codeView := v scrolledView.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2834
        codeView enableMotionEvents. "/ for active help
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2835
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2836
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2837
    ^ v
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2838
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2839
    "Modified: / 27-07-2011 / 13:15:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2840
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2841
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2842
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2843
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2844
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2845
    v := HVScrollableView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2846
                for:SelectionInListView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2847
                miniScrollerH:true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2848
                miniScrollerV:false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2849
                in:panel.
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2850
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2851
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2852
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2853
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2854
    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
  2855
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2856
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2857
    contextView middleButtonMenu:(self middleButtonMenu).
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2858
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2859
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2860
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2861
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2862
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2863
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2864
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2865
    contextView middleButtonMenu:(self middleButtonMenu).
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2866
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2867
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2868
initializeContinueButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2869
    continueButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2870
                label:(resources string:'Continue')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2871
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2872
                    continueButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2873
                    self doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2874
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2875
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2876
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2877
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2878
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2879
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2880
initializeDefineButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2881
    defineButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2882
                label:(resources string:'Define')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2883
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2884
                    defineButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2885
                    self doDefine
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2886
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2887
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2888
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2889
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2890
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2891
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2892
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2893
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2894
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2895
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2896
    hpanel := VariableHorizontalPanel in:panel.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2897
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2898
    receiverInspector := InspectorView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2899
                                origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2900
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2901
    receiverInspector fieldListLabel:'Receiver'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2902
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2903
    contextInspector := ContextInspectorView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2904
                                origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2905
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2906
    contextInspector fieldListLabel:'Context'.
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  2907
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2908
    ^ hpanel
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2909
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2910
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2911
initializeNextButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2912
    nextButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2913
                label:(resources string:'Debug_Next')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2914
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2915
                    stepButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2916
                    self doNext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2917
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2918
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2919
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2920
    "Created: / 17.11.2001 / 20:59:38 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2921
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2922
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2923
initializeReportButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2924
    reportButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2925
                label:(resources string:'Report by Mail...')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2926
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2927
                    reportButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2928
                    self doOpenReportMailApp.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2929
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2930
                in:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2931
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2932
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2933
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2934
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2935
initializeRestartButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2936
    restartButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2937
                label:(resources string:'Restart')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2938
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2939
                    restartButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2940
                    self doRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2941
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2942
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2943
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2944
    "Created: / 17.11.2001 / 20:58:52 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2945
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2946
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2947
initializeReturnButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2948
    returnButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2949
                label:(resources string:'Return')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2950
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2951
                    returnButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2952
                    self doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2953
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2954
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2955
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2956
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2957
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2958
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2959
initializeSendButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2960
    sendButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2961
                label:(resources string:'Send')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2962
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2963
                    sendButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2964
                    self doSend
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2965
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2966
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2967
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2968
    "Created: / 17.11.2001 / 21:01:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2969
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2970
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2971
initializeStepButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2972
    stepButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2973
                label:(resources string:'Debug_Step')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2974
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2975
                    stepButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2976
                    self doStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2977
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2978
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2979
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2980
    "Created: / 17.11.2001 / 21:00:13 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2981
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2982
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2983
initializeTerminateButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2984
    terminateButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2985
                label:(resources string:'Debug_Terminate')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2986
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2987
                    terminateButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2988
                    self doTerminate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2989
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2990
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2991
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2992
    terminateButton backgroundColor:Color red lightened.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2993
    "/ terminateButton foregroundColor:Color red.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2994
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2995
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2996
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2997
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2998
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2999
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3000
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3001
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3002
        inspectedProcess notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3003
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3004
             set prio somewhat higher (by 2, to allow walkBack-update process
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3005
             to run between mine and the debugged processes prio)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3006
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3007
            Processor activeProcess
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3008
                priority:(((inspectedProcess priority + 2) min:(Processor highIOPriority)) max:(Processor userSchedulingPriority+1)).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3009
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  3010
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  3011
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  3012
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  3013
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  3014
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3015
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3016
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3017
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3018
    "/ 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
  3019
    "/ 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
  3020
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3021
    drawableId notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3022
        ^ self
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3023
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3024
    "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
  3025
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3026
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3027
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  3028
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3029
releaseDebuggee
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3030
    "We have to be careful to release all refs to the debuggee,
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3031
     because we may be in the cache.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3032
     Otherwise, the GC will not be able to release it"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3033
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3034
    busy := false.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3035
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3036
    codeView acceptAction:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3037
    codeView doItAction:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3038
    codeView contents:nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3039
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3040
    receiverInspector release.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3041
    contextInspector release.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3042
    inspectedProcess := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3043
    contextArray := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3044
    ((exitAction == #restart) or:[exitAction == #return]) ifFalse:[
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3045
        selectedContext := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3046
    ].
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3047
    actualContext := firstContext := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3048
    steppedContext := wrapperContext := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3049
    catchBlock := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3050
    grabber := nil.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3051
    self autoUpdateOff.
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3052
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3053
    "Created: / 10-07-1997 / 14:57:51 / stefan"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3054
    "Modified: / 26-09-2012 / 15:08:21 / cg"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3055
!
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  3056
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3057
setLabelFor:aMessage in:aProcess
9403
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  3058
    |l lines processNameOrNil pidOrNil osPidString|
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3059
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3060
    lines := aMessage asStringCollection.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3061
    lines size > 1 ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3062
        l := lines first
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3063
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3064
        l := aMessage.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3065
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3066
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3067
    l := l , ' ('.
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  3068
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3069
        l := l , '???'
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  3070
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3071
        processNameOrNil := aProcess name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3072
        processNameOrNil notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3073
            l := l , (processNameOrNil contractTo:20) , ''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3074
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3075
        pidOrNil := aProcess id printString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3076
        l := l , '[' , pidOrNil , ']'.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  3077
    ].
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  3078
    l := l , ')'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3079
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3080
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3081
    ((ShowThreadID == true) and:[OperatingSystem isMSDOSlike]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3082
        osPidString := ' {threadID: ',OperatingSystem getThreadId printString,'}'.
9403
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  3083
    ].
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  3084
8305
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3085
    exceptionInfoLabel notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3086
        exceptionInfoLabel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3087
            label:(resources
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3088
                    string:'Exception: %1 in process %2 [%3]%4'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3089
                    with:(lines first colorizeAllWith:Color red)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3090
                    with:(processNameOrNil ? '')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3091
                    with:(pidOrNil ? '')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3092
                    with:(osPidString ? ''))
8305
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3093
    ].
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3094
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3095
    "Modified: / 06-07-2006 / 12:43:19 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3096
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3097
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3098
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3099
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3100
contextInterrupt
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3101
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3102
        'contextIRQ' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3103
        thisContext sender fullPrint.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3104
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3105
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3106
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3107
    "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
  3108
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3109
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3110
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3111
    DebuggingDebugger == true ifTrue:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3112
        'stepIRQ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3113
        "/ ' in ' print. thisContext sender fullPrint.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3114
        '' printCR.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3115
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  3116
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3117
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3118
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3119
    "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
  3120
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3121
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3122
stepOrNext
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3123
    |where here con s isWrap method wrappedMethod 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3124
     originalMethodOfWrappedMethod originalMethodsContext
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3125
     inBlock subBlockLeft ignore contextBelow wrapContext
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3126
     leftWrap enteredWrap anyStepBlocks
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3127
     oneMore initiallyShown inBlockBelow receiver processName|
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3128
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3129
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  3130
    "/ DebuggingDebugger := false
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3131
    "/ DebuggingDebugger2 := true
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3132
    "/ DebuggingDebugger2 := false
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3133
    "/ DebuggingDebugger3 := false
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3134
    "/ '' printCR
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3135
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3136
    processName := (Processor activeProcess nameOrId),' [',Processor activeProcess id printString,']'.
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3137
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3138
    skipLineNr == #return ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3139
        self label:('stepping context returned ' , ' (process: ' , processName , ')').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3140
        here := thisContext sender sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3141
        here setLineNumber:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3142
        here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3143
        con := thisContext sender sender sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3144
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3145
        HaltInterrupt handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3146
            ('DebugView [info]: halt/breakpoint in debugger at %1 ignored [stepOrNext]' bindWith:ex suspendedContext) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3147
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3148
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3149
            self enter:con select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3150
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3151
        con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3152
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  3153
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  3154
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3155
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3156
"/    "/ 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
  3157
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3158
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3159
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3160
"/        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
  3161
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3162
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3163
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3164
    Processor activeProcess ~~ inspectedProcess ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3165
        'DebugView [info]: stray step interrupt' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3166
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3167
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3168
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3169
    here := thisContext.        "stepInterrupt"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3170
    here := here sender.        "the caller; step- or contextIRQ"
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3171
    here := here sender.        "the interrupted context"
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3172
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3173
    DebuggingDebugger2 == true ifTrue:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3174
        '***************************' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3175
        'here in ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3176
        inWrap ifTrue:['(wrap) ' print.].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3177
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3178
        here selector printCR.
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3179
        'stepping in ' print. 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3180
        steppedContext notNil ifTrue:[    
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3181
            ((ObjectMemory addressOf:steppedContext) printStringRadix:16) print. ' ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3182
        ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3183
        steppedContext printCR.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3184
    ].
10
46e0d4f2079f *** empty log message ***
claus
parents: 7
diff changeset
  3185
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3186
    "/ kludge an bug-workaround;
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3187
    "/ I should not see those ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3188
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3189
    here selector == #ioInterrupt ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3190
        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3191
            'oops - should not get that one' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3192
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3193
        Processor ioInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3194
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3195
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3196
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3197
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3198
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3199
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3200
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3201
    stepUntilEntering notNil ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3202
        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3203
            'check if entering ' print. stepUntilEntering printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3204
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3205
        (stepUntilEntering match:here selector) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3206
            DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3207
                'entering...' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3208
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3209
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , processName , ')').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3211
            lastStepUntilEntering := stepUntilEntering.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3212
            stepUntilEntering := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3213
            self enter:here select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3214
            con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3215
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3216
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3217
        "/ see if stepping context is still active ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3218
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3219
        con := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3220
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3221
        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3222
            'start searching at: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3223
            con fullPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3224
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3225
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3226
            con := con sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3227
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3228
        con notNil ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3229
            DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3230
                'steppingContext still active - continue stepping' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3231
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3232
            con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3233
            where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3234
            StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3235
            InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3236
            InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3237
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3238
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3239
        stepUntilEntering := nil.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3240
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3241
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  3242
    "
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3243
     kludge to hide breakpoint wrappers in the context list and when single stepping:
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3244
         check if we are in a wrapper method's hidden setup-sequence
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3245
         if so, ignore the interrupt and continue single sending.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3246
         Assume we are in a wrappers setup code, if there is another context above,
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3247
         which is for the wrapper method (i.e. if there is context with an originalmethod
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3248
         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
  3249
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3250
    isWrap := false.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3251
    subBlockLeft := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3252
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3253
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3254
    inWrap ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3255
        "/ situation1:
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3256
        "/   valueWithReceiver or other
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3257
        "/   foo (wrapped)                 <- wrapContext
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3258
        "/
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3259
        "/ situation2:
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3260
        "/   foo (original)                <- originalMethodsContext
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3261
        "/   valueWithReceiver
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3262
        "/   foo (wrapped)                 <- wrapContext
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3263
        "/
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3264
        "/ situation3:
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3265
        "/   other
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3266
        "/   foo (original)                <- originalMethodsContext
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3267
        "/   valueWithReceiver
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3268
        "/   foo (wrapped)                 <- wrapContext
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3269
        "/
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3270
        "/ situation4:
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3271
        "/   ... many-contexts ... (more than 8)
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3272
        "/   possibly foo (original)  
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3273
        "/   valueWithReceiver or other
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3274
        "/   foo (wrapped)                 
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3275
        "/
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3276
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3277
        "/ search for the wrapped method's context and extract the original method 
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3278
        where := here.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3279
        8 timesRepeat:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3280
            wrapContext isNil ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3281
                where notNil ifTrue:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3282
                    DebuggingDebugger2 ifTrue:[ 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3283
                        ((ObjectMemory addressOf:where) printStringRadix:16) print. ' ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3284
                        where printCR 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3285
                    ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3286
                    where isBlockContext ifFalse:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3287
                        method := where method.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3288
                        (method notNil and:[method isWrapped]) ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3289
                            originalMethodOfWrappedMethod := method originalMethod.
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3290
                            wrappedMethod := method.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3291
                            wrapContext := where.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3292
                        ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3293
                    ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3294
                    where := where sender
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3295
                ]
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3296
            ]
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3297
        ].
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3298
        DebuggingDebugger2 ifTrue:[ 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3299
            'wrap-context is: ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3300
            wrapContext notNil ifTrue:[    
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3301
                ((ObjectMemory addressOf:wrapContext) printStringRadix:16) print. ' ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3302
            ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3303
            wrapContext printCR 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3304
        ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3305
        originalMethodOfWrappedMethod isNil ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3306
            'oops no wrap?' errorPrintCR.
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3307
        ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3308
    ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3309
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3310
    (inWrap and:[ originalMethodOfWrappedMethod notNil ]) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3311
        isWrap := false.
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3312
        "/ DebuggingDebugger2 ifTrue:[ '----------->' print. originalMethodOfWrappedMethod printCR ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3313
        where := here.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3314
        8 timesRepeat:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3315
            originalMethodsContext isNil ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3316
                where notNil ifTrue:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3317
                    DebuggingDebugger2 ifTrue:[ 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3318
                        ((ObjectMemory addressOf:where) printStringRadix:16) print. ' ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3319
                        where printCR 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3320
                    ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3321
                    where isBlockContext ifFalse:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3322
                        method := where method.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3323
                        method == originalMethodOfWrappedMethod ifTrue:[
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3324
                            originalMethodsContext := here.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3325
                            where == here ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3326
                                "/ situation2
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3327
                                DebuggingDebugger2 ifTrue:[ 's2' printCR ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3328
                                isWrap := true.
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3329
                                "/ here setSender:(wrapContext sender). --- leads to a crash
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3330
                            ] ifFalse: [
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3331
                                "/ situation3
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3332
                                DebuggingDebugger2 ifTrue:[ 's3' printCR ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3333
                                inWrap := false.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3334
                                isWrap := false. 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3335
                            ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3336
                            steppedContext := where
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3337
"/                        ] ifFalse:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3338
"/                            where selector == wrapContext selector ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3339
"/                                where receiver == wrapContext receiver ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3340
"/                                    '!!!!!!!!!!!!!!!!!!!!!!!!' printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3341
"/                                    method printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3342
"/                                    method originalMethod printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3343
"/                                    originalMethodOfWrappedMethod printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3344
"/                                    '!!!!!!!!!!!!!!!!!!!!!!!!' printCR.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3345
"/                                ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3346
"/                            ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3347
                        ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3348
                        where := where sender
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3349
                    ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3350
                ].
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3351
            ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3352
        ].
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3353
        DebuggingDebugger2 ifTrue:[ 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3354
            'original method-context is: ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3355
            originalMethodsContext notNil ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3356
                ((ObjectMemory addressOf:originalMethodsContext) printStringRadix:16) print. ' ' print.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3357
            ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3358
            originalMethodsContext printCR 
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3359
        ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3360
        originalMethodsContext isNil ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3361
            originalMethodOfWrappedMethod isNil ifTrue:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3362
                "/ situation4
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3363
                DebuggingDebugger2 ifTrue:[ 's4' printCR ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3364
                DebuggingDebugger2 ifTrue:[ steppedContext printCR ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3365
                isWrap := false.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3366
            ] ifFalse:[
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3367
                "/ situation1
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3368
                DebuggingDebugger2 ifTrue:[ 's1' printCR ].
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3369
                isWrap := true.
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3370
                "/ steppedContext := wrapContext
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3371
            ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3372
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3373
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3374
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3375
    isWrap ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3376
        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3377
            'ignore wrap' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3378
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3379
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3380
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3381
        "/ ignore, while in wrappers hidden setup
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3382
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3383
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3384
        ObjectMemory flushInlineCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3385
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3386
        DebuggingDebugger2 == true ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3387
            skipLineNr == #return ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3388
                'skipRet in wrap' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3389
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3390
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3391
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3392
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3393
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3394
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3395
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3396
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3397
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3398
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3399
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3400
    DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3401
        'bigStep is: ' print. bigStep printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3402
        'steppedContext is: ' print. steppedContext printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3403
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3404
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3405
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3406
    "/ 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
  3407
    "/
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3408
    (bigStep
787
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  3409
    and:[steppedContext notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3410
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3411
         a step or next - ignore all contexts below the interesting one
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3412
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3413
        where := here.      "the interrupted context"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3414
        contextBelow := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3415
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3416
        where home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3417
            "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3418
            "/ in a block called by 'our' context ?
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3419
            "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3420
            where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3421
"/ '*block*' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3422
                inBlock := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3423
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3424
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3425
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3426
        where == steppedContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3427
            where := where sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3428
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3429
            where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3430
                where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3431
"/ '*block*' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3432
                    inBlock := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3433
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3434
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3435
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3436
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3437
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3438
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3439
"/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
  3440
"/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
  3441
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3442
            where == steppedContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3443
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3444
                "/ check if we are in a context below steppedContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3445
                "/ (i.e. if steppedContext can be reached from
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3446
                "/  interrupted context. Not using context-ref but its
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3447
                "/  address to avoid creation of many useless contexts.)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3448
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3449
                inBlock ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3450
                    [where notNil] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3451
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3452
                        "/ if either the receiver or any arg of this context
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3453
                        "/ is a block of the steppedContext, we must really
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3454
                        "/ do a single step. Otherwise, stepping through a
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3455
                        "/ do:-loop would be very difficult.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3456
                        receiver := where receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3457
                        (receiver isBlock
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3458
                        and:[(receiver isKindOf:Block)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3459
                        and:[receiver home == steppedContext]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3460
                        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3461
                            anyStepBlocks := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3462
                        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3463
                            where args do:[:arg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3464
                                (arg isBlock
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3465
                                and:[(arg isKindOf:Block)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3466
                                and:[arg home == steppedContext]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3467
                                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3468
                                    anyStepBlocks := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3469
                                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3470
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3471
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3472
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3473
                        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3474
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3475
                            where selector printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3476
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3477
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3478
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3479
"/ 'found it - below; ignore' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3480
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3481
                             found the interesting context somwehere up in the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3482
                             chain. We seem to be still below the interesting one ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3483
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3484
                            tracing == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3485
                                here printString printCR
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3486
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3487
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3488
                              yes, a context below
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3489
                              - continue and schedule another stepInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3490
                              Must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3491
                              look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3492
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3493
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3494
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3495
"/ '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
  3496
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3497
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3498
"/                                    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
  3499
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3500
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3501
                                DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3502
                                    'below stepCon; continue until unwind of: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3503
                                    contextBelow printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3504
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3505
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3506
                                StepInterruptPending := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3507
                            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3508
                                ObjectMemory flushInlineCaches.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3509
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3510
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3511
"/                                    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
  3512
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3513
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3514
                                DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3515
                                    'in stepCon; continue single stepping' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3516
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3517
                                StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3518
                                InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3519
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3520
                            where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3521
                            InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3522
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3523
                            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3524
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3525
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3526
                        (steppedContext notNil and:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3527
                         where methodHome == steppedContext methodHome]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3528
                            inBlockBelow := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3529
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3530
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3531
                        anyStepBlocks ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3532
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3533
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3534
"/ 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
  3535
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3536
where isBlockContext ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3537
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3538
].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3539
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3540
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3541
                        where := where sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3542
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3543
                    s := 'context returned'.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3544
                    subBlockLeft := true.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3545
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3546
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3547
"/ 'found it right in sender' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3548
                s := 'after step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3549
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3550
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3551
"/ 'found it right away' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3552
            s := 'after step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3553
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3554
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3555
"/ ' send' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3556
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3557
         a send
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3558
        "
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3559
        DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3560
            'clear steppedContext' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3561
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3562
        steppedContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3563
        s := 'after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3564
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3565
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3566
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3567
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3568
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3569
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3570
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3571
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3572
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3573
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3574
    subBlockLeft ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3575
        steppedContext home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3576
            steppedContext := steppedContext home.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3577
            s := 'after step'.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3578
            subBlockLeft := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  3579
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  3580
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3581
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3582
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3583
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3584
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3585
     kludge to hide breakpoint wrappers in the context list:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3586
         check if we are in a wrapper methods hidden exit-sequence
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3587
         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
  3588
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3589
    (where isNil
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3590
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3591
    ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3592
        "/ did not find our steppedContext along the chain;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3593
        "/ could be in a wrappedMethods exitBlock ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3594
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3595
        leftWrap ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3596
            where := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3597
            wrappedMethod := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3598
            5 timesRepeat:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3599
                where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3600
                    where isBlockContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3601
                        method := where method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3602
                        (method notNil and:[method isWrapped]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3603
                            where == wrapperContext ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3604
                                DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3605
                                    'change stepCon fromWrapped: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3606
                                    steppedContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3607
                                    ' to: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3608
                                    wrapperContext printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3609
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3610
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3611
                                inWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3612
                                enteredWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3613
                                steppedContext := wrapperContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3614
                                wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3615
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3616
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3617
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3618
                    where := where sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3619
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3620
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3621
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3622
        enteredWrap ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3623
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3624
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3625
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3626
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3627
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3628
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3629
    subBlockLeft ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3630
        "/ special care for stepInterrupt in send,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3631
        "/ when created a dummy context (lineNr == 1)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3632
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3633
        steppedContext lineNumber isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3634
            steppedContext selector == here sender selector ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3635
                subBlockLeft := false.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3636
                s := 'after step'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3637
                steppedContext := here sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3638
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3639
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3640
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3641
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3642
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3643
    inBlock ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3644
"/ 'inBlock' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3645
        s := 'in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3646
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3647
    inBlockBelow ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3648
        ignore := true
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3649
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3650
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3651
    DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3652
        where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3653
            '(' print. steppedContextLineno print. ') ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3654
            where printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3655
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  3656
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3657
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3658
    ignore ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3659
        (bigStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3660
        and:[steppedContextLineno notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3661
        and:[where notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3662
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3663
            (here isBlockContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3664
            and:[(here methodHome == steppedContext)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3665
                 or:[here home == steppedContext]]) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3666
                DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3667
                    'same line but in block' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3668
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3669
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3670
                steppedContext := actualContext := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3671
                steppedContextLineno := here lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3672
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3673
                "/ kludge - I only have the info for up to 255 lines
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3674
                steppedContextLineno ~~ 255 ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3675
                    DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3676
                        'same line - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3677
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3678
                    ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3679
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3680
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3681
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3682
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3683
        (subBlockLeft not
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3684
        and:[skipLineNr notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3685
        and:[where notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3686
        and:[where lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3687
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3688
            DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3689
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3690
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3691
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3692
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3693
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3694
        (steppedContextLineno isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3695
        and:[skipLineNr isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3696
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3697
            DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3698
                'same line2 (after conIRQ) - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3699
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3700
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3701
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3702
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3703
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3704
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3705
"/' ' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3706
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3707
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3708
         yes, a context below
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3709
          - continue and schedule another stepInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3710
          Must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3711
          look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3712
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3713
        ObjectMemory flushInlineCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3714
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3715
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3716
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3717
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3718
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3719
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3720
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3721
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3722
    self label:(s , ' (process: ' , processName , ')').
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3723
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3724
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3725
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3726
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3727
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3728
    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
  3729
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3730
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3731
    DebuggingDebugger2 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3732
        '==> 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
  3733
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3734
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3735
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3736
    (oneMore == true) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3737
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3738
            initiallyShown := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3739
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3740
            initiallyShown := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3741
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3742
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3743
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3744
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  3745
    HaltInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3746
        'DebugView [info]: halt/breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3747
        ex proceed
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3748
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3749
        self enter:con select:initiallyShown
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3750
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3751
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3752
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  3753
    "Created: / 14-10-1996 / 12:53:39 / cg"
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  3754
    "Modified: / 20-07-2012 / 15:26:26 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3755
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3756
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  3757
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3758
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3759
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3760
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3761
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3762
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3763
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3764
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3765
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3766
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3767
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3768
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3769
        sel := nil
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3770
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3771
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3772
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3773
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3774
autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3775
    ^ UserPreferences current autoRaiseDebugger
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3776
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3777
    "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
  3778
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3779
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3780
autoRaiseView:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3781
    UserPreferences current autoRaiseDebugger:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3782
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3783
    "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
  3784
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3785
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3786
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3787
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3788
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3789
    updateProcess notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3790
        monitorToggle lampColor:(Color yellow).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3791
        updateProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3792
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3793
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3794
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3795
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3796
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3797
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3798
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3799
    updateProcess isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3800
        updateProcess :=
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3801
            [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3802
                [true] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3803
                    monitorToggle showLamp ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3804
                        monitorToggle lampColor:(Color yellow).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3805
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3806
                        monitorToggle activeForegroundColor:Color black.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3807
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3808
                    (Delay forSeconds:0.25) wait.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3809
                    self updateContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3810
                    monitorToggle showLamp ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3811
                        monitorToggle lampColor:(Color red).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3812
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3813
                        monitorToggle activeForegroundColor:Color red.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3814
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3815
                    (Delay forSeconds:0.25) wait.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3816
                    self updateContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3817
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3818
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3819
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3820
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3821
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3822
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3823
browseClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3824
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3825
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3826
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3827
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3828
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3829
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3830
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3831
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3832
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3833
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3834
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3835
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3836
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3837
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3838
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3839
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3840
browseClassHierarchy
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3841
    "browse the receiver's classHierarchy (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3842
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3843
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3844
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3845
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3846
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3847
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3848
    mthd notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3849
        cls := mthd containingClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3850
        "/ still nil if unbound - then use receivers class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3851
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3852
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3853
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3854
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3855
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3856
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3857
    "Modified: / 17.11.2001 / 19:43:06 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3858
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3859
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3860
browseFullClassProtocol
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3861
    "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
  3862
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3863
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3864
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3865
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3866
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3867
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3868
    mthd notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3869
        cls := mthd containingClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3870
        "/ still nil if unbound - then use receivers class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3871
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3872
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3873
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3874
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3875
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3876
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3877
    "Modified: / 17.11.2001 / 19:43:43 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3878
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3879
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3880
browseImplementingClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3881
    "browse the implementing class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3882
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3883
    |con mthd who sel cls home|
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3884
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3885
    con := selectedContext ? actualContext.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3886
    con isNil ifTrue:[^ self].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3887
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3888
    mthd := con method.
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3889
    mthd notNil ifTrue:[
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3890
        who := mthd who.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3891
        who notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3892
            cls := who methodClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3893
            sel := who methodSelector.
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3894
        ] ifFalse:[
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3895
            "might have been re-accepted"
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3896
            (home := con methodHome) notNil ifTrue:[
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3897
                (sel := home selector) notNil ifTrue:[
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3898
                    cls := home receiver class 
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3899
                            whichClassImplements:selectedContext selector.
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3900
                    cls notNil ifTrue:[
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3901
                        Dialog information:'Method has been changed/moved in the meanwhile.\Browser will show the most recent (current) version.' withCRs.
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3902
                    ].
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3903
                ]
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3904
            ].
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3905
        ].
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3906
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3907
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3908
        "/ class not found - try receiver
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3909
        cls := con receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3910
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3911
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3912
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3913
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3914
    "Created: / 22-11-1995 / 21:27:01 / cg"
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3915
    "Modified: / 19-07-2012 / 11:27:32 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3916
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3917
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3918
browseImplementors
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3919
    "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
  3920
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3921
    selectedContext isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3922
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3923
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3924
    "/ selectedContext receiver class browserClass
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3925
    self withWaitCursorDo:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3926
        UserPreferences systemBrowserClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3927
             browseImplementorsOf:selectedContext selector.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3928
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3929
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3930
    "Modified: / 19-07-2012 / 11:44:03 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3931
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3932
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3933
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3934
    "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
  3935
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3936
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3937
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3938
    (sel := codeView selection) notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3939
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3940
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3941
    initial isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3942
        initial := selectedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3943
                            ifTrue:[nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3944
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3945
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3946
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3947
                    requestSelector:'Selector to browse implementors of:'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3948
                    initialAnswer:initial.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3949
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3950
    selector notEmptyOrNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3951
        self withWaitCursorDo:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3952
            UserPreferences systemBrowserClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3953
                browseImplementorsMatching:selector.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3954
        ]
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3955
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3956
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3957
    "Modified: / 19-07-2012 / 11:43:52 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3958
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3959
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3960
browseProcessesApplication
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3961
    "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
  3962
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3963
    |p appClass|
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3964
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3965
    p := inspectedProcess ? Processor activeProcess.
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3966
    (p notNil and:[p isGUIProcess]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3967
        WindowGroup scheduledWindowGroups do:[:wg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3968
            wg process == p ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3969
                appClass := wg application class.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3970
                appClass browserClass openInClass:appClass selector:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3971
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3972
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3973
        ]
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3974
    ].
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3975
!
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3976
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3977
browseReceiversClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3978
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3979
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3980
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3981
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3982
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3983
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3984
    selectedContext isCheapBlockContext ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3985
        cls := selectedContext method mclass.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3986
        sel := selectedContext method selector.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3987
    ] ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3988
        cls := selectedContext receiver class.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3989
        sel := selectedContext selector.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3990
    ].
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3991
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3992
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3993
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3994
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3995
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  3996
    "Modified: / 19-07-2012 / 11:29:48 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3997
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3998
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3999
browseSenders
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  4000
    "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
  4001
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4002
    selectedContext isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4003
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4004
    ].
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4005
    self withWaitCursorDo:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4006
        UserPreferences systemBrowserClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4007
            browseAllCallsOn:selectedContext selector.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4008
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4009
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4010
    "Modified: / 19-07-2012 / 11:43:02 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4011
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4012
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4013
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4014
    "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
  4015
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4016
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4017
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4018
    (sel := codeView selection) notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4019
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4020
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4021
    initial isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4022
        initial := selectedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4023
                            ifTrue:[nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4024
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4025
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4026
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4027
                    requestSelector:'Selector to browse senders of:'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4028
                    initialAnswer:initial.
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4029
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4030
    selector notEmptyOrNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4031
        self withWaitCursorDo:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4032
            UserPreferences systemBrowserClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4033
                browseAllCallsOn:selector asSymbol.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4034
        ]
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4035
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  4036
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4037
    "Modified: / 19-07-2012 / 11:43:29 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4038
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  4039
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4040
clearRememberedCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4041
    "clear the remembered callchain."
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4042
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4043
    RememberedCallChain := nil
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4044
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4045
    "Created: / 08-03-2012 / 01:29:46 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4046
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4047
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4048
closeAllDebuggers
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4049
    (Dialog confirm:'Close all Debuggers (without confirmation if code was changed)?')
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4050
    ifFalse:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4051
        ^ self
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4052
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4053
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4054
    self class allInstancesDo:[:debugger | 
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4055
        debugger ~~ self ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4056
            debugger busy ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4057
                debugger destroyWithConfirmation:true.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4058
            ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4059
        ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4060
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4061
    self closeRequest.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4062
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4063
    "Created: / 23-03-2012 / 12:40:22 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4064
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4065
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4066
configureX:x y:y width:newWidth height:newHeight
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4067
    super configureX:x y:y width:newWidth height:newHeight.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4068
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4069
    LastOrigin := self origin.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4070
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4071
    "Created: / 10-11-2010 / 10:09:11 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4072
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4073
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4074
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4075
    "place the contents of the walkback view into the copy-paste buffer.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4076
     This allows pasting it into some other view for printing ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4077
10760
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4078
    |infoText|
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4079
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4080
    contextArray isEmptyOrNil ifTrue:[
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4081
        infoText := 'No context, no walkback'.
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4082
    ] ifFalse:[
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4083
        infoText := (contextArray collect:[:con | con fullPrintString]) asStringCollection.
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4084
    ].
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4085
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  4086
    self setClipboardText:infoText
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4087
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4088
    "Modified: 28.8.1995 / 15:31:59 / claus"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4089
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4090
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4091
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  4092
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4093
     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
  4094
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4095
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4096
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4097
        (self confirm:('Code modified - abort anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4098
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4099
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4100
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4101
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4102
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4103
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4104
        inspectedProcess isDead ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4105
            self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4106
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4107
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4108
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4109
            self showError:'** the process does not handle the abort signal **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4110
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4111
            self interruptProcessWith:[AbortOperationRequest raise].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4112
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4113
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4114
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4115
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4116
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4117
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4118
    exitAction := #abort.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4119
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4120
    "exit private event-loop"
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4121
    catchBlock notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4122
        abortButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4123
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4124
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4125
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4126
        'DebugView [warning]: abort failed' errorPrintCR.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4127
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4128
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4129
    ^ self.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4130
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4131
    "Modified: / 17.11.2001 / 22:53:22 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4132
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4133
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4134
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4135
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4136
     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
  4137
     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
  4138
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4139
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4140
        (self confirm:('Code modified - abort anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4141
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4142
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4143
        ]
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4144
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4145
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4146
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4147
        inspectedProcess isDead ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4148
            self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4149
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4150
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4151
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4152
            self showError:'** the process does not handle the abort signal **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4153
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4154
            self interruptProcessWith:[AbortAllOperationRequest raise].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4155
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4156
        ^ self
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4157
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4158
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4159
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4160
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4161
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4162
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4163
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4164
    catchBlock notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4165
        abortButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4166
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4167
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4168
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4169
        'DebugView [warning]: abort failed' errorPrintCR.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4170
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4171
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4172
    ^ self.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4173
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4174
    "Modified: / 17.11.2001 / 22:53:22 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4175
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4176
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4177
doChangeProcessPriority
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4178
    "ask for and change the process's priority"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4179
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4180
    |oldPrio newPrio s|
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4181
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4182
    oldPrio := (inspectedProcess ? Processor activeProcess) priority.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4183
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4184
    [
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4185
        s := Dialog 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4186
                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)\')
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4187
                initialAnswer:oldPrio printString.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4188
        s isEmptyOrNil ifTrue:[^ self].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4189
        newPrio := Integer readFrom:s onError:nil.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4190
        newPrio isNil
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4191
    ] whileTrue.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4192
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4193
    newPrio := newPrio max:(Processor lowestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4194
    newPrio := newPrio min:(Processor highestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4195
    newPrio >= Processor highIOPriority ifTrue:[
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4196
        (Dialog 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4197
                confirm:(resources 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4198
                            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?'))
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4199
        ifFalse:[^ self].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4200
    ].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4201
    (inspectedProcess ? Processor activeProcess) priority:newPrio.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4202
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4203
    "Created: / 07-03-2012 / 14:15:09 / cg"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4204
!
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  4205
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4206
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4207
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4208
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  4209
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  4210
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4211
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4212
        (self confirm:('Code modified - continue anyway ?')) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4213
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4214
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4215
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4216
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4217
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4218
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4219
            continueButton foregroundColor:Color red darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4220
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4221
        continueButton label:(resources string:'Stop').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4222
        continueButton action:[self doStop].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4223
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4224
        self processPerform:#resume.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4225
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4226
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4227
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4228
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4229
        exContext := thisContext findSpecialHandle:false raise:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4230
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4231
        (exContext notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4232
        and:[ (ex := exContext receiver) isLazyValue not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4233
        and:[ ex isException
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4234
        and:[ ex signal == NoHandlerError
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4235
        and:[ ex parameter signal == RecursionError]]]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4236
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4237
            "/ debug due to unhandled recursionInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4238
            "/ ask if we should proceed with more stack.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4239
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4240
            answer := self confirm:'Debugger entered due to a stack overflow.\\Continue with more stack ?' withCRs.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4241
            answer == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4242
                proc := Processor activeProcess.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4243
                proc setMaximumStackSize:(proc maximumStackSize * 2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4244
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4245
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4246
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4247
        steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4248
        tracing := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4249
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4250
        exitAction := #continue.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4251
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4252
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4253
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4254
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4255
        "/ not reached.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4256
        'DebugView [warning]: continue failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4257
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4258
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4259
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4260
        inspecting ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4261
            'DebugView [info]: resuming top context' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4262
            self showSelection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4263
            self doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4264
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4265
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4266
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  4267
    "Modified: / 5.10.1998 / 13:03:47 / cg"
2308
96e0033aa5a3 Exception handling change.
Stefan Vogel <sv@exept.de>
parents: 2305
diff changeset
  4268
    "Modified: / 26.7.1999 / 15:38:45 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4269
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4270
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4271
doDefine
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4272
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4273
     bagOfClassNames bagOfUsedClassNames implClass idx callee restart varName argName|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4274
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4275
    selectionIndex := contextView selection.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4276
    restart := true.
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4277
3283
1f20f44c64bf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3270
diff changeset
  4278
    selector := actualContext selector.
8963
0eaa4574519d changed: #doDefine
Claus Gittinger <cg@exept.de>
parents: 8952
diff changeset
  4279
    implClass := actualContext receiver class whichClassIncludesSelector:selector.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4280
    implClass notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4281
        "/ must be a subclassResponsibility
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4282
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4283
        idx := contextArray identityIndexOf:actualContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4284
        idx > 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4285
            callee := contextArray at:idx-1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4286
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4287
            callee selector == #subclassResponsibility ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4288
                restart := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4289
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4290
        ].
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4291
    ].
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4292
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4293
    "generate nice argument names"
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4294
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4295
    bagOfUsedClassNames := Bag new.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4296
    argNames := actualContext args
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4297
                    collect:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4298
                        [:eachArg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4299
                            |nm|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4300
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4301
                            nm := eachArg class name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4302
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4303
                                nm article , nm
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4304
                            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4305
                                bagOfUsedClassNames add:nm.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4306
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4307
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4308
                        ].
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4309
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4310
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4311
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4312
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4313
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4314
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4315
    actualContext receiver isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4316
        (self confirm:'Are you sure you want to add this method (to UndefinedObject) ?')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4317
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4318
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4319
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4320
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4321
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4322
    receiversClass := actualContext receiver class.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4323
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4324
    "/ code for a getter
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4325
    (receiversClass instVarNames includes:selector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4326
        code := '%1\' , haltStmtFix , '\    ^ %2'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4327
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4328
    ].
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4329
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4330
    "/ code for a setter
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4331
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4332
    and:[(selector endsWith:':')
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4333
    and:[receiversClass instVarNames includes:(selector copyWithoutLast:1)]])
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4334
    ifTrue:[
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4335
        varName := selector copyWithoutLast:1.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4336
        argName := argNames first.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4337
        code := '%1\' , haltStmtFix , '\    %3 := %4.'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4338
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4339
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4340
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4341
    "/ code for a tester
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4342
    (selector numArgs == 0
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4343
    and:[(selector startsWith:'is')
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4344
    and:[(Smalltalk classNamed:(selector copyFrom:3)) notNil ]])
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4345
    ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4346
        (receiversClass nameWithoutPrefix = (selector copyFrom:3)) ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4347
            code := '%1\' , haltStmtFix , '\    ^ true.'.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4348
        ] ifFalse:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4349
            code := '%1\' , haltStmtFix , '\    ^ false.'.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4350
        ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4351
        cat := 'testing'.
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4352
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4353
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4354
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4355
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4356
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4357
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4358
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4359
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4360
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4361
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4362
    code isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4363
        code := '%1\' , haltStmtDef
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4364
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4365
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4366
    self
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4367
        codeAccept:(code bindWith:proto with:selector with:varName with:argName) withCRs
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4368
        inClass:receiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4369
        unwind:false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4370
        category:cat
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4371
        onCancel:[^ self].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4372
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4373
    self doShowSelection:selectionIndex.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4374
    restart ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4375
        self doRestart
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4376
    ]
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4377
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  4378
    "Modified: / 23-03-2012 / 09:49:31 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4379
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4380
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4381
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4382
    "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
  4383
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4384
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4385
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4386
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4387
        (self confirm:('Code modified - step anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4388
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4389
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4390
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4391
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4392
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4393
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4394
        steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4395
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4396
        exitAction := #step.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4397
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4398
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4399
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4400
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4401
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4402
        'DebugView [warning]: send failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4403
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4404
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4405
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4406
    "Created: / 6.3.1997 / 21:09:36 / cg"
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4407
    "Modified: / 29.7.1998 / 21:49:29 / cg"
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4408
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4409
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4410
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4411
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4412
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4413
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4414
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4415
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4416
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4417
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4418
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4419
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4420
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4421
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4422
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4423
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4424
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4425
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4426
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4427
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4428
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4429
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4430
    "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
  4431
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4432
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4433
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4434
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4435
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4436
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4437
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4438
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4439
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4440
    traceView notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4441
        traceView topView destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4442
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4443
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4444
    tracing := false
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4445
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4446
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4447
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4448
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4449
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4450
    | str |
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4451
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4452
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4453
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4454
    str nextPutLine:('Error notification from '
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4455
                    , OperatingSystem getLoginName
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4456
                    , '@'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4457
                    , OperatingSystem getHostName).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4458
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4459
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  4460
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4461
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4462
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4463
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4464
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4465
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4466
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4467
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4468
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4469
    firstContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4470
        firstContext fullPrintAllOn:str.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4471
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4472
    str cr;cr.
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4473
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4474
    SendMailTool
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4475
        openForMessage:(str contents)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4476
        withSubject:('STX Error:[', self label, ']')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4477
        preOpenBlock:[:inst|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4478
            inst recipientEntryField value:'error@exept.de'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4479
        ].
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4480
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4481
    "Modified: / 20-09-2007 / 12:40:40 / cg"
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4482
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4483
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4484
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4485
    "restart - the selected context will be restarted"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4486
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4487
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4488
        (self confirm:('Code modified - restart anyway ?')) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4489
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4490
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4491
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4492
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4493
        selectedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4494
            ^ self showError:'** select a context first **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4495
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4496
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4497
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4498
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4499
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4500
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4501
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4502
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4503
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4504
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4505
    "/ normally not reached
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4506
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4507
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4508
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4509
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4510
    "Modified: / 29.7.1998 / 21:49:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4511
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4512
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4513
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4514
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4515
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4516
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4517
        (self confirm:('Code modified - return anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4518
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4519
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4520
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4521
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4522
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4523
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4524
        selectedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4525
            ^ self showError:'** select a context first **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4526
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4527
        self interruptProcessWith:[selectedContext unwind:nil].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4528
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4529
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4530
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4531
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4532
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4533
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4534
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4535
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4536
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4537
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4538
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4539
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4540
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4541
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4542
    "Modified: / 29.7.1998 / 21:50:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4543
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4544
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4545
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4546
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4547
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4548
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4549
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4550
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4551
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4552
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4553
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4554
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4555
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4556
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4557
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4558
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4559
"/        catchBlock notNil ifTrue:[catchBlock value].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4560
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4561
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4562
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4563
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4564
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4565
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4566
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4567
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4568
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4569
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4570
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4571
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4572
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4573
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4574
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4575
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4576
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4577
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4578
doStep:lineNr
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4579
    "common helper for step, skip & next.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4580
     Arrange for single-steppping 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
  4581
     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
  4582
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4583
    |con method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4584
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4585
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4586
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4587
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4588
        (self confirm:('Code modified - step anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4589
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4590
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4591
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4592
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4593
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4594
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4595
        selectedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4596
            con := actualContext. "/ selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4597
            steppedContextLineno := actualContext lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4598
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4599
            con := contextArray at:2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4600
            steppedContextLineno := con lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4601
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4602
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4603
        skipLineNr := lineNr.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4604
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4605
        lineNr == -1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4606
            steppedContextLineno := skipLineNr := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4607
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4608
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4609
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4610
            steppedContext := contextArray at:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4611
            stepHow := #nextIn.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4612
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4613
            stepHow == #nextOut ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4614
                steppedContext := con home.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4615
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4616
                steppedContext := con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4617
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4618
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4619
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4620
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  4621
"/ ' 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
  4622
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4623
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4624
         if we step in a wrapped method,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4625
         prepare to skip the prolog ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4626
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4627
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4628
        inWrap := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4629
        method := con method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4630
        (method notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4631
        and:[method isWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4632
        and:[method originalMethod ~~ method]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4633
            inWrap := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4634
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4635
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4636
        lineNr == #return ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4637
            Processor activeProcess forceInterruptOnReturnOf:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4638
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4639
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4640
        con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4641
        bigStep := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4642
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4643
        exitAction := #step.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4644
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4645
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4646
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4647
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4648
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4649
        'DebugView [warning]: step failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4650
        stepButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4651
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4652
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4653
    "Modified: / 29.7.1998 / 21:50:16 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4654
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4655
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4656
doStop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4657
    "stop the process (if its running, otherwise this is a no-op)"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4658
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4659
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4660
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4661
            continueButton foregroundColor:Color green darkened darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4662
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4663
        continueButton label:(resources string:'Continue').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4664
        continueButton action:[self doContinue].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4665
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4666
        self processPerform:#stop.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4667
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4668
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4669
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4670
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4671
    "Modified: 20.10.1996 / 18:30:48 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4672
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4673
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4674
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4675
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4676
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4677
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4678
        (self confirm:('Code modified - terminate anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4679
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4680
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4681
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4682
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4683
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4684
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4685
        self processPerform:#terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4686
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4687
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4688
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4689
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4690
    haveControl := false.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4691
    exitAction := #terminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4692
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4693
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4694
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4695
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4696
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4697
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4698
        'DebugView [warning]: terminate failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4699
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4700
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4701
            Processor activeProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4702
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4703
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4704
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4705
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4706
    "Modified: / 29.7.1998 / 21:50:35 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4707
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4708
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4709
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4710
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4711
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4712
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4713
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4714
"/    |v b|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4715
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4716
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4717
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4718
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4719
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4720
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4721
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4722
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4723
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4724
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4725
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4726
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4727
"/            traceView := nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4728
"/        ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4729
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4730
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4731
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4732
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4733
"/    v realize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4734
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4735
"/    tracing := true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4736
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4737
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4738
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4739
    "tracestep - not implemented yet"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4740
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4741
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4742
        tracing := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4743
        self doStep
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4744
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4745
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4746
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4747
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4748
    "exit from menu: immediate exit from smalltalk"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4749
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4750
    OperatingSystem exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4751
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4752
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4753
findHandlerFor
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4754
    |exClass con currentContext|
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4755
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4756
    (con := self selectedContext) isNil ifTrue:[ 
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4757
        con := contextArray at:1
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4758
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4759
    con sender isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4760
        self information:'Context has already returned'.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4761
        ^ self
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4762
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4763
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4764
    exClass := Dialog 
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4765
                        choose:'Exception class:'
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4766
                        fromList:(GenericException withAllSubclasses copyAsOrderedCollection sort:[:a :b | a name < b name])
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4767
                        lines:25
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4768
                        title:'Choose Exception class'.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4769
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4770
    currentContext := con findExceptional.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4771
    [currentContext notNil] whileTrue:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4772
        |r handler|
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4773
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4774
        r := currentContext receiver.     "receiver of #handle:do: or #on:do:"
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4775
        (r notNil and:[(handler := r handlerForSignal:exClass
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4776
                                     context:currentContext
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4777
                                     originator:nil) notNil]
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4778
        ) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4779
self halt.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4780
        ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4781
        currentContext := currentContext findSpecialHandle:true raise:true. "search starts at currentContext sender"
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4782
        "/ Transcript showCR:currentContext.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4783
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4784
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4785
    "Created: / 17-07-2012 / 12:51:10 / cg"
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4786
!
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4787
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4788
hideSupportCode
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4789
    ^ hideSupportCode
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  4790
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4791
    "Created: / 10-06-2012 / 21:27:02 / cg"
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  4792
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  4793
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4794
hideSupportCode:aBoolean
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4795
    hideSupportCode := aBoolean.
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4796
    self redisplayBacktrace.
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4797
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4798
    "Created: / 27-07-2012 / 14:55:09 / cg"
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4799
!
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4800
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4801
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4802
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4803
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4804
    |con|
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4805
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4806
    (con := self selectedContext) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4807
        con inspect.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4808
    ]
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4809
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4810
    "Modified: / 17-07-2012 / 12:52:34 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4811
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4812
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4813
middleButtonMenu
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4814
    <resource: #programMenu >
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4815
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4816
    |items m nameOfExecutable|
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4817
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4818
    exclusive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4819
        items := #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4820
                    ('Show More WalkBack'               showMore                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4821
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4822
                    ('Add Breakpoint'                   addBreakpoint           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4823
                    ('Remove Breakpoint'                removeBreakpoint        )
11661
2bda6075f0fa comment/format in:
Claus Gittinger <cg@exept.de>
parents: 11647
diff changeset
  4824
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints   )
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4825
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4826
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4827
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4828
        items := #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4829
                    ('Show More WalkBack'               showMore                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4830
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4831
                    ('Skip'                             skip                    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4832
                    ('Step Out'                         skipForReturn           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4833
                    ('Skip until Entering...'           skipUntilEntering       )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4834
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4835
"
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4836
                    ('Continue'                         doContinue              )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4837
                    ('Terminate'                        doTerminate             )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4838
                    ('Abort'                            doAbort                 )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4839
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4840
                    ('Step'                             doStep                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4841
                    ('Send'                             doSend                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4842
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4843
                    ('Return'                           doReturn                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4844
                    ('Restart'                          doRestart               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4845
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4846
"
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4847
                    ('Add Breakpoint'                   addBreakpoint           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4848
                    ('Remove Breakpoint'                removeBreakpoint        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4849
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4850
                ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4851
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4852
        self allowBreakPointsInDebugger ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4853
            items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4854
                        ('Allow Breakpoints && halt in Debugger'      doNotIgnoreBreakpoints  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4855
                    ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4856
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4857
            items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4858
                        ('Ignore Breakpoints && halt in Debugger'     doIgnoreBreakpoints  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4859
                    ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4860
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4861
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4862
        items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4863
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4864
                    ('Browse Implementing Class'      browseImplementingClass )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4865
                    ('Browse Receivers Class'             browseReceiversClass    )
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4866
"/                    ('Browse Receivers Class Hierarchy'   browseClassHierarchy    )
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  4867
"/                    ('Browse Receivers Full Protocol'     browseFullClassProtocol )
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4868
                    ('Implementors'                     browseImplementors      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4869
                    ('Implementors Of...'               browseImplementorsOf    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4870
                    ('Senders'                          browseSenders           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4871
                    ('Senders Of...'                    browseSendersOf         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4872
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4873
                    ('Inspect Context'                  inspectContext          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4874
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4875
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4876
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4877
    items := items , #(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4878
                ('Copy WalkBack Text'               copyWalkbackText        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4879
                ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4880
                ('QuickTerminate'                   quickTerminate          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4881
                ('='                                                        )).
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4882
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4883
    nameOfExecutable := OperatingSystem nameOfSTXExecutable asFilename withoutSuffix baseName.
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4884
    nameOfExecutable = 'stx' ifTrue:[ nameOfExecutable := 'Smalltalk' ].
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4885
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4886
    items := items , {
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4887
        { 'Exit %1 (No Confirmation)' bindWith:nameOfExecutable. #exit                 }}.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4888
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4889
    m := PopUpMenu
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4890
                itemList:items
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4891
                resources:resources
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4892
                receiver:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4893
                for:contextView.
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4894
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4895
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4896
        m notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4897
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4898
                           browseClassHierarchy browseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4899
                           browseImplementors browseSenders inspectContext skip doStepOut).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4900
        ].
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4901
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4902
    self updateMenuItems.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4903
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4904
    ^ m.
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4905
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  4906
    "Modified: / 27-07-2012 / 15:01:20 / cg"
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4907
!
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4908
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4909
notShowingSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4910
    ^ hideSupportCode == true.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4911
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  4912
    "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
  4913
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  4914
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4915
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4916
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4917
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4918
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4919
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4920
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4921
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4922
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4923
openSettingsDialog
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4924
    |settingsList settingsApp|
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4925
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4926
    settingsList :=
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4927
        #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4928
           #('Debugger'       #'AbstractSettingsApplication::DebuggerSettingsAppl'            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4929
           #('Editor'         #'AbstractSettingsApplication::EditSettingsAppl'                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4930
           #('Syntax Color'   #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4931
           #('Code Format'    #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4932
        ).
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4933
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4934
    settingsApp := SettingsDialog new.
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  4935
    "/ settingsApp requestor:self.
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4936
    settingsApp installSettingsEntries:settingsList.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4937
    settingsApp allButOpen.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4938
    settingsApp window label:('Debugger Settings').
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4939
    settingsApp openWindow.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4940
!
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4941
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4942
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4943
    "quick terminate - the process will get no chance for cleanup actions"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4944
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4945
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4946
        self processPerform:#terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4947
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4948
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4949
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4950
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4951
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4952
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4953
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4954
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4955
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4956
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4957
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4958
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4959
        'DebugView [warning]: quick terminate failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4960
        (self confirm:'Regular quick terminate failed - do it the hard way ?') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4961
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4962
            Processor activeProcess terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4963
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4964
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4965
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4966
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4967
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4968
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4969
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4970
rememberCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4971
    "remember the callchain in a classvar.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4972
     When entered the next time, highlight already entered contexts.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4973
     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
  4974
     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
  4975
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4976
    RememberedCallChain := contextArray copy
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4977
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4978
    "Created: / 07-03-2012 / 23:07:07 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4979
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4980
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4981
selectedContext
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4982
    contextView selection notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4983
        (contextView selectionValue startsWith:'**') ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4984
            ^ (contextArray at:(contextView selection)).
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4985
        ]
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4986
    ].
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4987
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4988
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4989
    "Created: / 17-07-2012 / 12:52:10 / cg"
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4990
!
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  4991
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4992
showFullWalkback
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4993
    "double the number of contexts shown"
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4994
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4995
    contextArray notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4996
        nChainShown := 9999.
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4997
        self redisplayBacktrace.
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4998
    ]
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  4999
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  5000
    "Created: / 23-07-2012 / 12:24:02 / cg"
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  5001
!
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  5002
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5003
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5004
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5005
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5006
    contextArray notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5007
        nChainShown := nChainShown * 2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5008
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5009
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  5010
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5011
    "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
  5012
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5013
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5014
showSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5015
    hideSupportCode := false.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5016
    self redisplayBacktrace.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5017
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5018
    "Created: / 10-06-2012 / 21:27:53 / cg"
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5019
!
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5020
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5021
showingDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5022
    ^ verboseBacktrace == false.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5023
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5024
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5025
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5026
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5027
showingDenseWalkback:aBoolean
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5028
    verboseBacktrace := aBoolean not.
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5029
    self redisplayBacktrace.
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5030
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5031
    "Created: / 27-07-2012 / 14:58:00 / cg"
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5032
!
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5033
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5034
showingSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5035
    ^ hideSupportCode == false.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5036
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5037
    "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
  5038
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  5039
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5040
showingVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5041
    ^ verboseBacktrace == true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5042
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5043
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5044
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5045
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5046
sizeChanged:how
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5047
    super sizeChanged:how.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5048
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5049
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5050
    "Created: / 10-11-2010 / 09:08:41 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5051
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5052
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5053
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5054
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5055
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5056
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5057
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  5058
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5059
    "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
  5060
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  5061
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  5062
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5063
    "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
  5064
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5065
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  5066
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  5067
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  5068
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5069
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5070
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5071
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5072
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5073
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5074
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5075
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5076
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5077
                request:'Skip until entering what (matchpattern):'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5078
                initialAnswer:self goodSkipUntilSelector.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5079
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5080
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5081
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5082
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5083
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5084
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5085
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5086
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5087
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5088
toggleShowSupportCode
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5089
    hideSupportCode ifTrue:[
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5090
        self showSupportCode
11645
4f39a925956d changed: #toggleShowSupportCode
Stefan Vogel <sv@exept.de>
parents: 11636
diff changeset
  5091
    ] ifFalse:[
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5092
        self hideSupportCode
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  5093
    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  5094
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  5095
    "Modified: / 17-11-2001 / 20:07:45 / cg"
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  5096
    "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
  5097
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  5098
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5099
toggleVerboseWalkback
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5100
    self showingDenseWalkback:(self showingDenseWalkback not)
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5101
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  5102
    "Modified: / 27-07-2012 / 15:00:15 / cg"
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5103
!
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5104
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5105
updateMenuItems
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5106
    |m mthd cls mCls rCls|
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5107
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5108
    "
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5109
     enable/disable some menu items
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5110
    "
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5111
    m := contextView middleButtonMenu.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5112
    m notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5113
        m disable:#removeBreakpoint.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5114
        m disable:#addBreakpoint.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5115
        canShowMore ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5116
            m disable:#showMore
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5117
        ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5118
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5119
        selectedContext notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5120
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5121
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5122
            mthd := selectedContext method.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5123
            mthd notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5124
                cls := mCls := mthd containingClass.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5125
                mthd isBreakpointed ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5126
                    m enable:#removeBreakpoint.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5127
                ] ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5128
                    m enable:#addBreakpoint.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5129
                ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5130
            ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5131
            (selectedContext isBlockContext and:[selectedContext home isNil]) ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5132
                "/ a cheap block's context
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5133
            ] ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5134
                rCls := selectedContext receiver class.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5135
                cls isNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5136
                    cls := rCls
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5137
                ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5138
            ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5139
            cls notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5140
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5141
                rCls == mCls ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5142
                    m disable:#browseReceiversClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5143
                ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5144
                mCls isNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5145
                    m disable:#browseImplementingClass
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5146
                ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5147
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5148
            ] ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5149
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5150
            ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5151
            mthd notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5152
                m enableAll:#(browseImplementingClass).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5153
            ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5154
            selectedContext isCheapBlockContext ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5155
                m disableAll:#(browseReceiversClass).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5156
            ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5157
        ] ifFalse:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5158
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5159
        ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5160
    ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5161
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5162
    "Modified: / 19-07-2012 / 11:53:30 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5163
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5164
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5165
!DebugView methodsFor:'menu & button actions-breakpoints'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5166
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5167
addBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5168
    "add a 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
  5169
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5170
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5171
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5172
    selectedContext isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5173
        ^ self showError:'** select a context first **'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5174
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5175
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5176
        ^ self
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5177
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5178
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5179
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5180
    implementorClass notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5181
        method := implementorClass compiledMethodAt:selectedContext selector.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5182
        (method notNil and:[method isBreakpointed not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5183
            method setBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5184
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5185
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5186
    contextView middleButtonMenu disable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5187
    contextView middleButtonMenu enable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5188
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5189
    "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
  5190
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5191
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5192
allowBreakPointsInDebugger
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5193
    ^ ignoreBreakpoints not
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5194
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5195
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5196
allowBreakPointsInDebugger:aBoolean
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5197
    ignoreBreakpoints := aBoolean not.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5198
    self initializeMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5199
    self initializeContextViewsMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5200
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5201
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5202
doIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5203
    self allowBreakPointsInDebugger:false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5204
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5205
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5206
doNotIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5207
    self allowBreakPointsInDebugger:true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5208
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5209
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5210
ignoreAllHaltsForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5211
    self addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false forAll:true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5212
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5213
    "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
  5214
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5215
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5216
ignoreAllHaltsUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5217
    self addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true forAll:true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5218
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5219
    "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
  5220
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5221
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5222
ignoreBreakpointsWithThisParameterForever
11370
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  5223
    Object disableBreakPoint:breakPointParameter.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  5224
    "/ self addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false forAll:false.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  5225
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5226
    "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
  5227
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5228
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5229
ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5230
    self addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5231
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5232
    "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
  5233
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5234
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5235
ignoreHaltForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5236
    self addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5237
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5238
    "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
  5239
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5240
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5241
ignoreHaltUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5242
    self addIgnoredHaltForCount:nil orTimeDuration:nil orUntilShiftKey:true forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5243
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5244
    "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
  5245
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5246
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5247
openBreakPointBrowser
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5248
    Tools::BreakpointBrowser open
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5249
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5250
    "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
  5251
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5252
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5253
openIgnoreAllHaltsUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5254
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5255
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5256
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5257
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5258
                    request:(resources string:'How long should all halts/breakpoints be ignored [smh] ?')
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5259
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5260
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5261
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5262
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5263
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5264
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5265
            self addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false forAll:true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5266
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5267
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5268
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5269
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5270
    "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
  5271
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5272
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5273
openIgnoreBreakpointsWithThisParameterNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5274
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5275
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5276
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5277
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5278
                    request:(resources 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5279
                                string:'How often should breakpoints with parameter "%1" be ignored ?'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5280
                                with:breakPointParameter)
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5281
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5282
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5283
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5284
        n := Integer readFrom:answer onError:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5285
        n notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5286
            LastIgnoreHaltNTimes := n.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5287
            self addIgnoredHaltForCount:n orTimeDuration:nil orUntilShiftKey:false forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5288
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5289
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5290
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5291
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5292
    "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
  5293
    "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
  5294
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5295
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5296
openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5297
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5298
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5299
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5300
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5301
                    request:(resources 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5302
                                string:'How long should breakpoints with parameter "%1" be ignored (s/m/h) ?'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5303
                                with:breakPointParameter)
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5304
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5305
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5306
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5307
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5308
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5309
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5310
            self addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5311
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5312
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5313
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5314
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5315
    "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
  5316
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5317
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5318
openIgnoreHaltNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5319
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5320
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5321
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5322
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5323
                    request:(resources string:'How often should this halt be ignored ?')
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5324
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5325
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5326
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5327
        n := Integer readFrom:answer onError:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5328
        n notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5329
            LastIgnoreHaltNTimes := n.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5330
            self addIgnoredHaltForCount:n orTimeDuration:nil orUntilShiftKey:false forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5331
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5332
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5333
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5334
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5335
    "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
  5336
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5337
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5338
openIgnoreHaltUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5339
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5340
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5341
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5342
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5343
                    request:(resources string:'How long should this halt/breakpoint be ignored (s/m/h) ?')
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5344
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5345
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5346
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5347
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5348
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5349
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5350
            self addIgnoredHaltForCount:nil orTimeDuration:dT orUntilShiftKey:false forAll:false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5351
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5352
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5353
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5354
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5355
    "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
  5356
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5357
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5358
removeAllBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5359
    "remove all trace & breakpoints - if any"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5360
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5361
    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5362
        self withExecuteCursorDo:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5363
            MessageTracer unwrapAllMethods
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5364
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5365
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5367
    "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
  5368
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5369
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5370
removeBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5371
    "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
  5372
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5373
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5374
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5375
    selectedContext isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5376
        ^ self showError:'** select a context first **'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5377
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5378
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5379
        ^ self
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5380
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5381
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5382
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5383
    implementorClass notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5384
        method := implementorClass compiledMethodAt:selectedContext selector.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5385
        (method notNil and:[method isBreakpointed]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5386
            method clearBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5387
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5388
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5389
    contextView middleButtonMenu disable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5390
    contextView middleButtonMenu enable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5391
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5392
    "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
  5393
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5394
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5395
stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5396
    self class stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5397
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5398
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5399
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5400
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5401
abortAllIsHandled
9750
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5402
    ^ AbortAllOperationWantedQuery query
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5403
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5404
    "Modified: / 09-02-2011 / 13:53:13 / cg"
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5405
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5406
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5407
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5408
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5409
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5410
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5411
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5412
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5413
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5414
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5415
explainSelection
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5416
    |interval crsrPos|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5417
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5418
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5419
    interval isEmpty ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5420
        crsrPos := codeView characterPositionOfCursor.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5421
        codeView characterUnderCursor isSeparator ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5422
            crsrPos := (crsrPos - 1) max:1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5423
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5424
        interval := crsrPos to:crsrPos.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5425
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5426
    self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5427
        withNodeValueAtInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5428
        do:[:value :description |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5429
            self showValue:value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5430
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5431
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5432
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5433
findNodeForInterval:interval
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5434
    |source|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5435
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5436
    interval isEmpty ifTrue: [^ nil].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5437
8487
ddf59247960c slow runArray (text) operations
Claus Gittinger <cg@exept.de>
parents: 8432
diff changeset
  5438
    source := codeView contentsAsString string.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5439
"/    source := currentMethod notNil
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5440
"/                ifTrue:[ currentMethod source ]
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  5441
"/                ifFalse:[ codeView contents asString ].
8257
106d3fecbca0 findNodeForInterval: care for nonexisting source
Claus Gittinger <cg@exept.de>
parents: 8225
diff changeset
  5442
    source isNil ifTrue:[^ nil].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5443
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5444
    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string) allowErrors:true.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5445
"/    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string).
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5446
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5447
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5448
findNodeIn:tree forInterval:interval
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5449
    <resource: #obsolete>
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5450
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5451
    |node|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5452
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5453
self obsoleteMethodWarning.
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5454
    node := nil.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5455
    tree nodesDo:[:each |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5456
        (each intersectsInterval:interval) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5457
            (node isNil or:[node == each parent]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5458
                node := each
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5459
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5460
                (node parent notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5461
                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5462
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5463
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5464
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5465
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5466
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5467
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5468
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5469
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5470
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5471
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5472
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5473
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5474
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5475
    ('change:*' match:current) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5476
        ^ 'update:*'
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5477
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5478
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5479
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5480
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5481
haltSelectors
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5482
    ^ #( #'halt' #'halt:' #'breakPoint:' #'breakPoint:info:' #'break').
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5483
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5484
    "Modified (format): / 27-01-2012 / 11:10:00 / cg"
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5485
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5486
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5487
inspectedProcess
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5488
    ^ inspectedProcess
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5489
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5490
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5491
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5492
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5493
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5494
    inspectedProcess isDead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5495
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5496
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5497
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5498
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5499
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5500
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5501
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5502
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5503
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5504
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5505
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5506
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5507
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5508
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5509
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5510
openHTMLDocument: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5511
    "open a HTMLDocumentView on anHTMLFilename"
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5512
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5513
    HTMLDocumentView openFullOnDocumentationFile: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5514
!
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5515
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5516
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5517
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5518
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5519
    inspectedProcess isDead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5520
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5521
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5522
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5523
    inspectedProcess perform:aMessage.
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5524
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5525
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5526
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5527
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5528
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5529
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5530
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5531
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5532
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5533
    "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
  5534
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5535
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5536
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5537
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5538
    contextArray notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5539
        self withExecuteCursorDo:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5540
            oldSelection := contextView selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5541
            oldSelection notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5542
                oldContext := contextArray at:oldSelection ifAbsent:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5543
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5544
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5545
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  5546
"/            con := contextArray at:1.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5547
            "/ force redeisplay, even if same by changing the first entry
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5548
            contextArray size > 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5549
                contextArray at:1 put:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5550
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5551
            self setContext:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5552
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5553
            oldContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5554
                idx := oldSelection
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5555
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5556
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5557
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5558
            contextView setSelection:idx.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5559
            idx notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5560
                self showSelection:idx
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5561
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5562
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5563
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5564
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5565
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  5566
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5567
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5568
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5569
selectedInterval
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5570
    ^ codeView selectedInterval
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5571
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5572
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5573
showError:message
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5574
    codeView contents:(resources string:message).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5575
    shown ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5576
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5577
            "/ consider this a kludge:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5578
            "/ if exclusive, cannot use flash, since it suspends
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5579
            "/ (but we cannot suspend here ...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5580
            codeView redrawInverted. device flush.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5581
            OperatingSystem millisecondDelay:200.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5582
            codeView redraw
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5583
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5584
            codeView flash
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5585
        ]
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5586
    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5587
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5588
    "Modified: / 18.11.2001 / 00:01:13 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5589
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5590
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5591
showTerminated
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5592
    self showError:'** the process has terminated **'
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5593
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5594
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5595
showValue:aValue
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5596
    "/ TODO: show value in info field
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5597
    "/ Transcript showCR:aValue printString
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5598
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5599
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5600
stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5601
    ^ stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5602
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5603
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5604
unstep
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5605
    stepping := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5606
    bigStep := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5607
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5608
    exitAction := nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5609
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5610
    "Modified: 22.10.1996 / 11:59:57 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5611
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5612
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5613
updateButtonsAndMenuItemsForContext:aContext
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5614
    |m|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5615
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5616
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5617
    m notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5618
        self updateMenuItems.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5619
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5620
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5621
            abortButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5622
            m enable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5623
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5624
            abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5625
            m disable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5626
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5627
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5628
            terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5629
            m disable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5630
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5631
            terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5632
            m enable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5633
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5634
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5635
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5636
    mayProceed == false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5637
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5638
        m notNil ifTrue:[m disable:#doContinue].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5639
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5640
        continueButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5641
        m notNil ifTrue:[m enable:#doContinue]
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5642
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5643
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5644
    "Created: / 06-07-2011 / 12:24:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5645
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5646
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5647
updateContext
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5648
    |oldContext idx|
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5649
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5650
    inspectedProcess state == #dead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5651
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5652
        ^ self
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5653
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5654
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5655
    oldContext := selectedContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5656
    [
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5657
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5658
            oldContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5659
                contextArray notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5660
                    idx := contextArray identityIndexOf:oldContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5661
                    idx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5662
                        self showSelection:idx
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5663
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5664
                        codeView contents:('** context returned **')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5665
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5666
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5667
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5668
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5669
    ] valueUninterruptably.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5670
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5671
    "Modified: 20.10.1996 / 18:11:24 / cg"
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5672
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5673
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5674
withNodeValueAtInterval:interval do:aBlock
9294
e19553d7e864 changed: #withNodeValueAtInterval:do:
Stefan Vogel <sv@exept.de>
parents: 9292
diff changeset
  5675
    |node definingNode nm nmBold varIdx parentNode receiver con receiversNonMetaClass|
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5676
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5677
"/interval printCR.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5678
    Error
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5679
        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5680
        do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5681
            [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5682
                node := self findNodeForInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5683
            ] valueWithWatchDog:[ ^ self ] afterMilliseconds:50.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5684
        ].
9314
e58b9abd145a comment/format in: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9308
diff changeset
  5685
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5686
    node isNil ifTrue:[ ^ self ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5687
    node isVariable ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5688
        "/ Transcript showCR:node.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5689
        ^ self
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  5690
    ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5691
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5692
    nm := node name.
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5693
    nmBold := nm allBold.
8600
7b68bafada1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8595
diff changeset
  5694
    actualContext isNil ifTrue:[^ self ].
8636
fc9c77c184a8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8626
diff changeset
  5695
    actualContext methodHome isNil ifTrue:[^ self ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5696
    receiver := actualContext methodHome receiver.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5697
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5698
    (nm = 'self') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5699
        aBlock value:receiver value:'receiver' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5700
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5701
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5702
    (nm = 'super') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5703
        aBlock value:receiver value:'receiver' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5704
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5705
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5706
    (nm = 'thisContext') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5707
        aBlock value:actualContext value:'context' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5708
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5709
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5710
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5711
    definingNode := node whoDefines:nm.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5712
    definingNode isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5713
        (receiver class allInstVarNames includes:nm) ifTrue:[
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5714
"/aBlock value:'xIII' value:'instVar'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5715
            receiver class isMetaclass ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5716
                aBlock value:(receiver instVarNamed:nm) value:'classInstVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5717
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5718
                aBlock value:(receiver instVarNamed:nm) value:'instVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5719
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5720
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5721
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5722
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5723
        receiversNonMetaClass := receiver class theNonMetaclass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5724
        (receiversNonMetaClass privateClasses contains:[:cls | cls nameWithoutPrefix = nm]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5725
            aBlock value:'' value:'private class ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5726
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5727
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5728
        (receiversNonMetaClass classVarNames includes:nm) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5729
            aBlock value:((currentMethod mclass ? receiversNonMetaClass) theNonMetaclass classVarAt:nm) value:'classVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5730
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5731
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5732
        receiversNonMetaClass sharedPoolNames do:[:eachPoolName |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5733
            |pool|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5734
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5735
            pool := Smalltalk at:eachPoolName.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5736
            pool isNil ifTrue:[ pool := receiversNonMetaClass topNameSpace at:eachPoolName].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5737
            (pool classVarNames includes:nm) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5738
                aBlock value:(pool classVarAt:nm) value:'poolVar ',nm allBold,' in ',eachPoolName allBold,' '.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5739
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5740
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5741
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5742
        (Smalltalk includesKey:nm asSymbol) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5743
            (Smalltalk at:nm asSymbol) isClass ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5744
                aBlock value:'class: ',nmBold value:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5745
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5746
                aBlock value:(Smalltalk at:nm asSymbol) value:'global ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5747
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5748
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5749
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5750
        aBlock value:'' value:'unknown'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5751
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5752
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5753
"/definingNode printCR.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5754
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5755
    definingNode isMethod ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5756
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5757
        varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5758
            Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5759
                handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5760
                do:[ aBlock value:(actualContext methodHome argAt:varIdx) value:'methodArg ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5761
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5762
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5763
        varIdx := definingNode temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5764
        varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5765
            actualContext methodHome numVars >= varIdx ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5766
                Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5767
                    handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5768
                    do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5769
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5770
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5771
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5772
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5773
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5774
    definingNode isBlock ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5775
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5776
        (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5777
            varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5778
                "/ am I in this block ?
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5779
                (actualContext lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5780
                and:[ definingNode lastLineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5781
                and:[ (actualContext lineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5782
                            between:definingNode firstLineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5783
                            and:definingNode lastLineNumber)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5784
                and:[ varIdx <= actualContext numArgs ] ]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5785
                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5786
                    aBlock value:(actualContext argAt:varIdx) value:'blockArg ',nmBold .
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5787
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5788
                ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5789
aBlock value:nmBold , ' is not in scope of selected context' value:nil.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5790
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5791
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5792
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5793
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5794
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5795
    parentNode := definingNode parent.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5796
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5797
    [parentNode notNil] whileTrue:[
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5798
"/'isMethod ' print. parentNode isMethod printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5799
        parentNode isMethod ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5800
            varIdx := parentNode temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5801
            varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5802
                actualContext methodHome numVars >= varIdx ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5803
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5804
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5805
                        do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5806
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5807
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5808
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5809
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5810
"/'isBlock ' print. parentNode isBlock printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5811
        parentNode isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5812
            "/ we dont have any information on the inlineability
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5813
            "/ of this block here (RBParser does not know what
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5814
            "/ the compiler does.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5815
            "/ therefore, it is questionable if we can use the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5816
            "/ contexts home context here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5817
            "/ am I in this block ?
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5818
            con := actualContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5819
            [con notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5820
            and:[ parentNode lastLineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5821
            and:[ con lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5822
            and:[ con lineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5823
                    between:parentNode firstLineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5824
                    and:parentNode lastLineNumber ]]]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5825
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5826
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5827
            con notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5828
                varIdx := parentNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5829
                varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5830
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5831
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5832
                        do:[ aBlock value:(con argAt:varIdx) value:'blockArg ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5833
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5834
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5835
                varIdx := parentNode body temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5836
                varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5837
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5838
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5839
                        do:[ aBlock value:(con varAt:varIdx) value:'blockVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5840
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5841
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5842
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5843
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5844
        parentNode := parentNode parent.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5845
    ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5846
    aBlock value:nmBold , ' is not in scope of selected context' value:nil.
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  5847
9688
805ea34ba3ef changed: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9662
diff changeset
  5848
    "Modified: / 18-01-2011 / 17:57:34 / cg"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5849
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5850
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5851
!DebugView methodsFor:'private queries'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5852
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5853
canBrowseClassHierarchy
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5854
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5855
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5856
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5857
    ^ m notNil and:[m isEnabled:#browseClassHierarchy]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5858
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5859
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5860
canBrowseFullClassProtocol
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5861
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5862
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5863
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5864
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5865
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5866
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5867
canBrowseImplementingClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5868
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5869
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5870
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5871
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5872
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5873
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5874
canBrowseProcessesApplication
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5875
    |p|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5876
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5877
    p := inspectedProcess ? Processor activeProcess.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5878
    p isNil ifTrue:[^ false].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5879
    ^ p isGUIProcess
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5880
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5881
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5882
canBrowseReceiversClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5883
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5884
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5885
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5886
    ^ m notNil and:[m isEnabled:#browseReceiversClass]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5887
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5888
11457
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5889
canCloseAllDebuggers
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5890
    self class allInstancesDo:[:debugger | 
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5891
        debugger ~~ self ifTrue:[
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5892
            debugger busy ifTrue:[^ true].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5893
        ]
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5894
    ].
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5895
    ^ false
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5896
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5897
    "Created: / 23-03-2012 / 12:40:18 / cg"
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5898
!
b304a867b5e0 added: closeAllDebuggers functions
Claus Gittinger <cg@exept.de>
parents: 11443
diff changeset
  5899
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5900
canDefineMethod
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5901
    ^ defineButton isVisible
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5902
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5903
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5904
canRestart
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5905
    ^ restartButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5906
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5907
    "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
  5908
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5909
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5910
canReturn
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5911
    ^ returnButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5912
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5913
    "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
  5914
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5915
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5916
canSendEmail
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5917
    ^ SendMailTool notNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5918
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5919
    "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
  5920
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5921
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5922
canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5923
    ^ canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5924
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5925
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5926
hasContextSelected
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5927
    ^ contextView hasSelection
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5928
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5929
    "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
  5930
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5931
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5932
hasHaltsToIgnore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5933
    ^ IgnoredHalts notEmptyOrNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5934
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5935
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5936
isAborting
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5937
    ^ exitAction == #abort
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5938
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5939
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5940
isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5941
    ^ isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5942
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5943
    "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
  5944
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5945
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5946
isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5947
    ^ isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5948
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5949
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5950
isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5951
    ^ isStoppedAtHaltOrBreakPoint or:[self selectedContextIsWrapped]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5952
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5953
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5954
selectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5955
    |con mthd|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5956
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  5957
    (con := self selectedContext) notNil ifTrue:[
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5958
        mthd := con method.
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  5959
        ^ mthd notNil and:[mthd isWrapped]
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5960
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5961
    ^ false.
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  5962
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  5963
    "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
  5964
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5965
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5966
setOfHiddenCallingSelectors
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5967
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5968
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5969
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5970
setOfHiddenCallingSelectors:aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5971
    setOfHiddenCallingSelectors := aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5972
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5973
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5974
!DebugView methodsFor:'private-breakpoints'!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5975
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5976
addIgnoredHaltForCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey forAll:aBoolean
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5977
    |haltingContext haltingMethod lineNrOfHalt|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5978
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5979
    aBoolean ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5980
        haltingMethod := #all
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5981
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5982
        haltingContext := self findHaltingContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5983
        haltingContext isNil ifTrue:[ 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5984
            Transcript showCR:'no halting context found'. 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5985
            ^ self 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5986
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5987
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5988
        haltingMethod := haltingContext method.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5989
        lineNrOfHalt := haltingContext lineNumber.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5990
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5991
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5992
    self class
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5993
        ignoreHaltIn:haltingMethod at:lineNrOfHalt
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5994
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5995
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5996
    "Created: / 27-01-2012 / 11:31:12 / cg"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5997
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5998
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5999
canAddBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6000
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6001
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6002
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6003
    ^ m notNil and:[m isEnabled:#addBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6004
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6005
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6006
canRemoveBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6007
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6008
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6009
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6010
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6011
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6012
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6013
findHaltingContext
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6014
    |haltSelectors|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6015
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6016
    haltSelectors := self haltSelectors.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6017
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6018
    contextArray keysAndValuesDo:[:idx :con |
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6019
        |sel con2 sel2 method|
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6020
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6021
        sel := con selector.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6022
        (haltSelectors includes:sel) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6023
            (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6024
                method mclass == Object ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6025
                    con2 := contextArray at:idx+1.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6026
                    sel2 := con2 selector.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6027
                    (haltSelectors includes:sel2) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6028
                        con2 method mclass == Object ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6029
                            ^ contextArray at:idx+2.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6030
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6031
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6032
                    ^ contextArray at:idx+1
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6033
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6034
                method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6035
(contextArray at:idx+1) infoPrintCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6036
                    ^ contextArray at:idx+1
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6037
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6038
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6039
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6040
        con method isWrapped ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6041
            ^ con
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6042
        ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6043
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6044
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6045
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6046
    "Modified: / 27-01-2012 / 11:06:02 / cg"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6047
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6048
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6049
ignoreBreakpoints
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6050
    ^ ignoreBreakpoints
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6051
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6052
    "Created: / 17.11.2001 / 18:20:16 / cg"
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6053
! !
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  6054
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6055
!DebugView methodsFor:'private-cache handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6056
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6057
cacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6058
    "remember myself for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6059
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6060
    "caching the last debugger will make the next debugger appear
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6061
     faster, since no resources have to be allocated in the display.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6062
     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
  6063
     Otherwise, the GC will not be able to release it."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6064
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6065
    windowGroup notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6066
        windowGroup setProcess:nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6067
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6068
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6069
    self releaseDebuggee.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6070
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6071
    cachable ~~ true ifTrue:[^ self].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6072
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6073
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6074
    "/ only cache if I am on the Display
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6075
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6076
    device == Display ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6077
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6078
            CachedExclusive := self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6079
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6080
            CachedDebugger := self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6081
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6082
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6083
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6084
    ObjectMemory stepInterruptHandler == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6085
        ObjectMemory stepInterruptHandler:nil
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6086
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6087
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6088
    "Modified: 10.7.1997 / 15:50:46 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6089
    "Modified: 31.7.1997 / 21:20:14 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6090
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6091
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6092
isCached
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6093
    "tell wether we are a cached debugger"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6094
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6095
    CachedExclusive == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6096
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6097
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6098
    CachedDebugger == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6099
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6100
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6101
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6102
    ^ false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6103
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6104
    "Created: 10.7.1997 / 15:22:43 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6105
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6106
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6107
uncacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6108
    "do not remember myself any longer for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6109
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6110
    cachable := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6111
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6112
    CachedExclusive == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6113
        CachedExclusive := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6114
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6115
    CachedDebugger == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6116
        CachedDebugger := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6117
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6118
    OpenDebuggers notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6119
        OpenDebuggers remove:self ifAbsent:[].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6120
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6121
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6122
    "Modified: 31.7.1997 / 21:20:11 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6123
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6124
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6125
!DebugView methodsFor:'private-code view'!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6126
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6127
codeAspect
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  6128
    ^ SyntaxHighlighter codeAspectMethod
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6129
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6130
    "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
  6131
    "Modified: / 27-07-2012 / 22:20:27 / cg"
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6132
! !
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6133
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6134
!DebugView methodsFor:'private-context handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6135
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6136
contextListEntryFor:aContext
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6137
    ^ Error
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6138
        handle:[:ex | '???' ]
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6139
        do:[
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6140
            |s|
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6141
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6142
            aContext selector == #doIt ifTrue:[
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6143
                aContext receiver isNil ifTrue:[
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6144
                    s := 'doIt' allBold
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6145
                ]
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6146
            ].
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6147
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6148
            s := Text streamContents:[:s | aContext printOn:s ].
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6149
            RememberedCallChain notNil ifTrue:[
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6150
                (RememberedCallChain includesIdentical:aContext) ifTrue:[
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6151
                    s := s colorizeAllWith:(Color red).
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6152
                ].
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6153
            ].
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6154
            s
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6155
        ].
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6156
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6157
    "Created: / 21-05-2007 / 13:30:24 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6158
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  6159
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6160
is:aHomeContext inCallingChainOf:aContext
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6161
    |con|
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6162
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6163
    con := aContext.
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6164
    [con notNil and:[con ~~ aHomeContext]] whileTrue:[
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6165
        con := con sender
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6166
    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6167
    ^ con notNil
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6168
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6169
    "Created: / 10-06-2012 / 18:46:29 / cg"
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6170
!
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6171
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6172
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6173
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6174
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  6175
    ^ 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
  6176
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  6177
    "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
  6178
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6179
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6180
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  6181
    "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
  6182
     Most complications here arise from filtering less-interesting contexts
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6183
     if not in verbose-context mode or when hiding implementation contexts."
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6184
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6185
    |con text method caller caller2 called called2 m count c cc sndr
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6186
     suspendContext calledBySuspendContext nm h calledContext|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6187
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6188
    (contextArray size > 0 and:[aContext == (contextArray at:1)]) ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6189
        "no change"
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6190
        ^ false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6191
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6192
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6193
    isStoppedAtHaltOrBreakPoint := isStoppedAtBreakPointWithParameter := false.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6194
    firstContext := aContext.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6195
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6196
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6197
    m notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6198
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6199
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  6200
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6201
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6202
    aContext isNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6203
        text := Array with:'** no context **'.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6204
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6205
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6206
        text := OrderedCollection new:nChainShown.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6207
        contextArray := OrderedCollection new:nChainShown.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6208
        con := aContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6209
        calledContext := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6210
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6211
        verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6212
            "/ with dense backtrace, hide the ProcessorScheduler
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6213
            "/ contexts at the top; look for a Process>>suspend*
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6214
            "/ context within the first 10 contexts
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6215
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6216
            suspendContext := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6217
            c := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6218
            1 to:10 do:[:i |
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6219
                |sel|
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6220
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6221
                c notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6222
                    (sel := c selector) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6223
                        ((sel isSymbol and:[sel startsWith:'suspend'])
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6224
                        and:[c receiver isMemberOf:Process]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6225
                            suspendContext := c.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6226
                            calledBySuspendContext := cc.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6227
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6228
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6229
                    cc := c.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6230
                    c := c sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6231
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6232
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6233
            suspendContext notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6234
                con := suspendContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6235
                calledContext := calledBySuspendContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6236
                suspendContext := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6237
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6238
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6239
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6240
        con notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6241
            "/ hide the halt implementation
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6242
            (self haltSelectors includes:con selector) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6243
                (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6244
                    method mclass == Object ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6245
                        (con selector startsWith:'breakPoint:') ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6246
                            isStoppedAtBreakPointWithParameter := true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6247
                            breakPointParameter := con argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6248
                        ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6249
                        isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6250
                        verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6251
                            calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6252
                            con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6253
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6254
                    ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6255
                        method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6256
                            isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6257
                            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6258
                                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6259
                                con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6260
                            ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6261
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6262
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6263
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6264
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6265
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6266
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6267
         get them all
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6268
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6269
        count := 0.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6270
        [con notNil and:[count <= nChainShown]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6271
            (self haltSelectors includes:con selector) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6272
                (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6273
                    method mclass == Object ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6274
                        (con selector startsWith:'breakPoint:') ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6275
                            isStoppedAtBreakPointWithParameter := true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6276
                            breakPointParameter := con argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6277
                        ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6278
                        isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6279
                    ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6280
                        method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6281
                            isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6282
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6283
                    ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6284
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6285
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6286
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6287
            [
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  6288
                DebuggingDebugger3 == true ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6289
                    'showingContext1: (' print. con print.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6290
                    ') --> ' print. (self showingContext1:con calling:calledContext) printCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6291
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6292
                self showingContext1:con calling:calledContext
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6293
            ] whileFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6294
                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6295
                con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6296
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6297
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  6298
            DebuggingDebugger3 == true ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6299
                'showingContext2: (' print. con print.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6300
                ') --> ' print. (self showingContext2:con nesting:count) printCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6301
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6302
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6303
            (self showingContext2:con nesting:count) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6304
                "/ ignore it, if its in the same
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6305
                "/ method as the previous context
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6306
"/                (verboseBacktrace ~~ true
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6307
"/                and:[count > 0
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6308
"/                and:[contextArray last method == con method
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6309
"/                and:[(contextArray last isBlockContext not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6310
"/                     & con isBlockContext not) not ]]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6311
"/                    "/ skip it, if its in the same method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6312
"/                    "/ as the called context.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6313
"/                ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6314
                    contextArray add:con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6315
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6316
                    (MoreDebuggingDetail == true) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6317
                        nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6318
                    ] ifFalse:[
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6319
                        nm := self contextListEntryFor:con.
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6320
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6321
                    text add:nm.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6322
                    count := count + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6323
"/                ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6324
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6325
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6326
            "/ with hidden enumeration code, skip over internals of the enumeration
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6327
            hideSupportCode == true ifTrue:[
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6328
                (con isBlockContext
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6329
                and:[ (h := con home) notNil
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6330
                and:[ (self is:h inCallingChainOf:con) ]]) ifTrue:[
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6331
                    c := con sender.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6332
                    [ 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6333
                        c notNil 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6334
                        and:[ 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6335
                            sndr := c sender.
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6336
                            (sndr ~= h) and:[ 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6337
                                c receiver isCollection         "/ skip collection implementations
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6338
                                or:[ ( #( #'handle:do:'         "/ skip exception implementations
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6339
                                          #'handleDo:' 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6340
                                          #'answer:do:' 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6341
                                          #'ensure:' ) includes: c selector ) 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6342
                                or:[ #'perform:*'               "/ skip perform implementations
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6343
                                         match: c selector ]] 
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6344
                            ]
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6345
                        ] 
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6346
                    ] whileTrue:[ 
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6347
                        c := sndr 
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6348
                    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6349
                    c notNil ifTrue:[
11573
91281dc275e1 class definition
Claus Gittinger <cg@exept.de>
parents: 11571
diff changeset
  6350
                        con := h sender.
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6351
                    ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6352
                ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6353
            ].
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6354
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6355
            "/
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6356
            "/ kludge: if its a wrapped method, then hide the wrap-call
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6357
            "/
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6358
            method := con method.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6359
            method notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6360
                called := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6361
                caller := con sender.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6362
                (caller notNil and:[caller receiver == method]) ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6363
                    called2 := caller.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6364
                    caller2 := caller sender.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6365
                    caller2 notNil ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6366
                        (caller2 method isWrapped
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6367
                        and:[ caller2 method originalMethod == method ]) ifTrue:[
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6368
                            calledContext := called2.
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6369
                            con := caller2
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6370
                        ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6371
                    ].
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  6372
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6373
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6374
                caller := caller2 := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6375
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6376
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6377
            "/ with dense backtrace, skip the doIt methods context
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6378
            "/ (its dummy anyway) and fake that contexts name
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6379
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6380
            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6381
                (con isBlockContext
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6382
                 and:[(h := con home) == con sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6383
                 and:[h notNil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6384
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6385
                 and:[h method who isNil]]]]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6386
                    calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6387
                    con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6388
                    text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6389
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6390
                    text add:(self contextListEntryFor:con methodHome).
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6391
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6392
                h := nil.  "/ never keep refs to contexts unless you really need them ...
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6393
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6394
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6395
            "/ with dense backtrace, dont show below the doIt
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6396
            ( verboseBacktrace ~~ true
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6397
            and:[ (self setOfHiddenCallingSelectors includes:con selector) ]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6398
                con := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6399
            ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6400
                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6401
                con := con sender
11571
797d5fa9c634 option to hide enumeration code impl.
Claus Gittinger <cg@exept.de>
parents: 11457
diff changeset
  6402
            ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6403
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6404
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6405
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6406
         did we reach the end ?
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6407
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6408
        (con isNil or:[con sender isNil]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6409
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6410
            "/ the very last one is the startup context
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6411
            "/ (in main) - it has nil as receiver and nil as selector
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6412
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6413
            (contextArray notEmpty
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6414
            and:[contextArray last selector isNil]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6415
                contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6416
                text removeLast
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6417
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6418
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6419
            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6420
                "/ in dense mode, remove the process startup
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6421
                "/ contexts (if any)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6422
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6423
                (contextArray size > 0
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6424
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6425
                    con selector == #start ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6426
                        contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6427
                        text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6428
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6429
                        [contextArray size > 0
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6430
                         and:[contextArray last methodHome == con]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6431
                            contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6432
                            text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6433
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6434
                    ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6435
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6436
            ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6437
        ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6438
            m notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6439
                m enable:#showMore.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6440
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6441
            canShowMore := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6442
            text add:(resources string:'*** more walkback follows - click here to see them ***')
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6443
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6444
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6445
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6446
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  6447
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6448
    releaseInspectors ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6449
        receiverInspector release.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6450
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6451
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6452
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6453
    m notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6454
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6455
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  6456
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6457
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6458
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  6459
    "Created: / 14-12-1995 / 19:10:31 / cg"
11694
464f62536f09 menu changed to use checkboxes
Claus Gittinger <cg@exept.de>
parents: 11693
diff changeset
  6460
    "Modified: / 27-07-2012 / 15:10:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6461
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6462
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6463
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6464
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  6465
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6466
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6467
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6468
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  6469
    con := aContext.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6470
    verboseBacktrace ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6471
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6472
            con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6473
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6474
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6475
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6476
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6477
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6478
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6479
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6480
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6481
    "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
  6482
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6483
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6484
showingContext1:aContext calling:calledContext
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6485
    "return false, if this (top) context is to be skipped.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6486
     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
  6487
     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
  6488
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6489
    |recIsException sel rec senderRec mthd mthdClass calledSel calledRec|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6490
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6491
    verboseBacktrace == true ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6492
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6493
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6494
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6495
    rec := aContext receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6496
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6497
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6498
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6499
    "/ to avoid firing/waiting the lazy or future
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6500
    recIsException := (rec isLazyValue not) and:[rec isException].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6501
    aContext sender notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6502
        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
  6503
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6504
11636
2a26799eb21b class definition
Claus Gittinger <cg@exept.de>
parents: 11610
diff changeset
  6505
    DebuggingDebugger3 == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6506
        'showingContext1: (' print. aContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6507
        ') calling: (' print. calledContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6508
        ')' printCR.
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6509
    ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6510
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6511
    (#(doCallHandler: doRaise
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6512
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6513
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6514
            recIsException ifTrue:[ ^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6515
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6516
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6517
    (#(raise raiseRequest
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6518
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6519
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6520
            recIsException ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6521
                (senderRec isLazyValue not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6522
                and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6523
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6524
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6525
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6526
    (#(doWhile:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6527
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6528
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6529
            rec isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6530
                true "aContext sender isBlockContext" ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6531
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6532
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6533
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6534
    calledContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6535
        calledSel := calledContext selector.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6536
        calledRec := calledContext receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6537
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6538
        calledRec isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6539
            (calledSel == #ensure:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6540
            (calledSel == #ifCurtailed:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6541
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6542
        (calledSel == #handle:do:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6543
        (calledSel == #answer:do:) ifTrue:[^ false].
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6544
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6545
"/        calledRec isLazyValue ifFalse:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6546
"/            ((calledSel == #doWhile:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6547
"/            and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6548
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6549
"/
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6550
"/            ((#(ensure: ifCurtailed: valueNowOrOnUnwindDo: valueOnUnwindDo:
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6551
"/                ) includes:calledSel)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6552
"/             and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6553
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6554
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6555
"/            ((calledSel == #handle:do:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6556
"/             and:[calledRec isExceptionHandler])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6557
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6558
"/        ].
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6559
    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6560
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6561
    (#(handleDo:) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6562
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6563
            (calledRec isLazyValue not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6564
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6565
    (#(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6566
        withCursor:do:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6567
        withWaitCursorDo:
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6568
        withReadCursorDo:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6569
        withWriteCursorDo:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6570
        withSearchCursorDo:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6571
      ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6572
        ifTrue:[
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6573
Transcript showCR:mthdClass.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6574
            (mthdClass == TopView) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6575
            (mthdClass == ApplicationModel) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6576
            (mthdClass == WindowGroup) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6577
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6578
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6579
    (#(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6580
        wait
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6581
        waitWithTimeout:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6582
        waitWithTimeoutMs:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6583
      ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6584
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6585
            (mthdClass == Semaphore) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6586
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6587
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6588
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6589
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6590
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6591
    "Created: / 17-11-2001 / 22:24:06 / cg"
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6592
    "Modified: / 27-07-2012 / 17:30:18 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6593
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6594
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6595
showingContext2:aContext nesting:nesting
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6596
    "return false, if this (intermediate) context is to be skipped.
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6597
     Here, we hide some well known methods, which are usually
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6598
     not too interesting;
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6599
     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
  6600
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6601
    |sel rec mClass
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6602
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6603
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6604
    verboseBacktrace ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6605
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6606
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6607
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6608
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6609
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6610
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6611
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6612
    sender notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6613
        senderSelector := sender selector.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6614
        senderReceiver := sender receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6615
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6616
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6617
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6618
    sel == #withCursor:do: ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6619
        (mClass == WindowGroup) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6620
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6621
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6622
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6623
    or:[sel == #withWaitCursorDo:]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6624
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6625
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6626
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  6627
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  6628
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  6629
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  6630
    or:[sel == #doWithIndex:]]]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6631
        mClass == Array ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6632
        mClass == OrderedCollection ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6633
        mClass == Set ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6634
        mClass == Dictionary ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6635
        mClass == Interval ifTrue:[^ false].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6636
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6637
    (sel == #perform:
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6638
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6639
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6640
    or:[sel == #perform:with:with:with:
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6641
    or:[sel == #perform:with:with:with:with:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6642
    or:[sel == #perform:withArguments:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6643
    or:[sel == #perform:with:ifNotUnderstood:
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6644
    or:[sel == #perform:withArguments:ifNotUnderstood:]]]]]]])
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6645
    ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6646
        nesting == 0 ifTrue:[^ true].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6647
        mClass == Array ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6648
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6649
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6650
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6651
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6652
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6653
    (mClass == Object) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6654
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6655
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6656
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6657
    (mClass == Method) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6658
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6659
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6660
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6661
    (mClass == SmallInteger) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6662
        (sel == #to:do:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6663
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6664
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6665
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6666
    (mClass == Block) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6667
        sel == #ensure: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6668
        sel == #ifCurtailed: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6669
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6670
        sel == #valueOnUnwindDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6671
        sel == #on:do: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6672
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6673
        sel == #value ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6674
        sel == #value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6675
        sel == #value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6676
        sel == #value:value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6677
        sel == #value:value:value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6678
        sel == #value:value:value:value:Value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6679
        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
  6680
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6681
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6682
    aContext isBlockContext ifTrue:[
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6683
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6684
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6685
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6686
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6687
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6688
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6689
"/        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
  6690
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6691
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6692
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6693
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6694
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6695
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6696
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6697
        aContext home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6698
            aContext home receiver isLazyValue ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6699
                (aContext home receiver isMemberOf:Semaphore) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6700
                    (aContext home selector == #wait) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6701
                    (aContext home selector == #waitWithTimeoutMs:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6702
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6703
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6704
        ]
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6705
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6706
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6707
    (rec isExceptionHandler) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6708
        sel == #handle:do: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6709
        sel == #handleDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6710
        (sel startsWith:#raise) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6711
        sel == #answer:do: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6712
    ].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6713
    (rec isLazyValue not and:[ rec isException] ) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6714
        sel == #doRaise ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6715
        sel == #doCallHandler: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6716
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6717
            senderReceiverClass == Signal ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6718
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6719
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6720
    (mClass == Context) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6721
        sel == #unwind ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6722
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6723
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6724
    (mClass == ProcessorScheduler) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6725
        sel == #interruptActive ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6726
        sel == #threadSwitch: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6727
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6728
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6729
    mClass == Process ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6730
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6731
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6732
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6733
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6734
    "Created: / 17-11-2001 / 19:34:20 / cg"
11696
1718b69fe880 changed:
Claus Gittinger <cg@exept.de>
parents: 11694
diff changeset
  6735
    "Modified: / 27-07-2012 / 17:26:54 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  6736
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  6737
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  6738
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6739
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6740
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6741
    "this is a kludge:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6742
        start a dispatchloop which exits when
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6743
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6744
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6745
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6746
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6747
    [
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6748
        [haveControl] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6749
            self controlLoopCatchingErrors
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6750
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  6751
    ] ensure:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6752
        catchBlock := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6753
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6754
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6755
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6756
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6757
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6758
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6759
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  6760
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6761
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  6762
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6763
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6764
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6765
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6766
    (exclusive or:[windowGroup isNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6767
        "if we do not have multiple processes or its a system process
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6768
         we start another dispatch loop, which exits when
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6769
         either continue, return or step is pressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6770
         or (via the catchBlock) if an error occurs.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6771
         Since our display is an extra exclusive one,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6772
         all processing for normal views stops here ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6773
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6774
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6775
        WindowGroup setActiveGroup:windowGroup.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6776
        SignalSet anySignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6777
            |signal|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6778
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6779
            signal := ex signal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6780
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6781
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6782
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  6783
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6784
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6785
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6786
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6787
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6788
>>>>     :    ' , 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
  6789
>>>>     :    ' , 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
  6790
>>>>     :    ' , 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
  6791
>>>>     :    ' , 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
  6792
>>>>     :    ' , 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
  6793
>>>>     :    ' , 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
  6794
>>>>     :    ' , 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
  6795
>>>>     :    ' , 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
  6796
>>>>     :    ' , 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
  6797
>>>>     :    ' , 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
  6798
>>>>     :    ' , 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
  6799
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6800
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6801
caught & ignored.'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6802
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6803
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6804
            UserNotification handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6805
                (ex signal == ActivityNotificationSignal) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6806
                    ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6807
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6808
                self showError:ex description.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6809
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6810
            ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6811
                device dispatchModalWhile:[Processor activeProcess state:#debug.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6812
                                           haveControl].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6813
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6814
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6815
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6816
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6817
        "we do have multiple processes -
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6818
         simply enter the DebugViews-Windowgroup event loop.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6819
         effectively suspending event processing for the currently
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6820
         active group.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6821
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6822
        SignalSet anySignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6823
            |answer signal eMsg|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6824
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6825
            signal := ex signal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6826
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6827
            DebuggingDebugger ~~ true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6828
                (signal == ActivityNotification) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6829
                    ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6830
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6831
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6832
                "/ ignore exceptions which say they explicitly have to be ignored
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6833
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6834
                ex catchInDebugger ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6835
                    'DebugView [info]: ',signal printString,'-signal in debugger cought for close' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6836
                    self destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6837
                    ex reject
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6838
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6839
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6840
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6841
                "/ ignore recursive breakpoints
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6842
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6843
                (signal isControlInterrupt) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6844
                    ignoreBreakpoints == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6845
                        'DebugView [info]: halt/break in debugger ignored 1' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6846
                        ('DebugView [info]: ',ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6847
                        ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6848
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6849
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6850
                (signal == TerminateProcessRequest) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6851
                    "/ mhm - someone wants to shoot me down while debugging ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6852
                    answer := Dialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6853
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6854
                                labels:#( 'Ignore' 'Close & terminate' )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6855
                                values:#( #proceed #close )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6856
                                default:#close.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6857
                    answer == #close ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6858
                        self destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6859
                        ex reject
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6860
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6861
                    ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6862
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6863
                signal == RecursiveExceptionError ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6864
                    (ex parameter signal == BreakPointInterrupt)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6865
                    ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6866
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6867
                        ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6868
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6869
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6870
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6871
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6872
>>>> Signal:  ' , ex signal printString , '
448
e50e23ae7dc3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 430
diff changeset
  6873
>>>>          ' , ex parameter signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6874
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6875
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6876
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6877
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6878
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  6879
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6880
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6881
caught & ignored.'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6882
                    ex return
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6883
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6884
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6885
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6886
            self topView raiseDeiconified.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6887
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6888
            eMsg := ex description.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6889
            (ex signal isControlInterrupt) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6890
                eMsg := eMsg , Character cr asString , 'in ' , ex suspendedContext printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6891
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6892
            Dialog aboutToOpenBoxNotificationSignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6893
                handle:[:ex | ex proceed ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6894
                do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6895
                    answer := Dialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6896
                        choose:('Error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6897
                        labels:#( 'Proceed' 'Cancel' 'Debug' )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6898
                        values:#( #proceed #cancel #debug )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6899
                        default:#cancel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6900
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6901
            answer == #debug ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6902
                'DebugView [info]: cought exception - debugging' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6903
                Debugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6904
                    enterUnconditional:(ex suspendedContext)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6905
                    withMessage:'Error in debugger: ' , eMsg
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6906
                    mayProceed:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6907
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6908
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6909
            answer == #proceed ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6910
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6911
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6912
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6913
            'DebugView [info]: cought exception - returning' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6914
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6915
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6916
            "/ make certain that sub-debuggers, inspectors etc.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6917
            "/ come up on my device.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6918
            Screen currentScreenQuerySignal answer:device
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6919
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6920
                windowGroup
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6921
                    eventLoopWhile:[Processor activeProcess state:#debug.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6922
                                      true]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6923
                    onLeave:[]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6924
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6925
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6926
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6927
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6928
11818
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  6929
    "Created: / 24-11-1995 / 20:33:45 / cg"
94fb736aa226 changed:
Claus Gittinger <cg@exept.de>
parents: 11704
diff changeset
  6930
    "Modified: / 26-09-2012 / 15:03:39 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6931
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6932
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6933
!DebugView methodsFor:'user interaction'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6934
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6935
checkIfCodeIsReallyModified
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6936
    |source|
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6937
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6938
    codeView modified ifFalse:[^ false].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6939
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6940
    currentMethod isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6941
        ^ false
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6942
    ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6943
    source := currentMethod source.
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6944
    source notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6945
        source string = codeView contents string ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6946
            ^ false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6947
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6948
        (source string withTabsExpanded:8) = (codeView contents string withTabsExpanded:8) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6949
            ^ false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6950
        ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6951
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6952
    ^ true
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6953
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6954
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6955
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6956
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6957
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6958
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6959
checkSelectionChangeAllowed:newSelection
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6960
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6961
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6962
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6963
    and:[newSelection = contextView selection]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6964
        ^ true
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6965
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6966
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6967
    (self confirm:('Code modified - change selection anyway ?')) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6968
        ^ false
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6969
    ].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6970
    codeView modified:false.
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6971
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6972
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6973
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6974
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6975
codeAccept:someCode
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6976
    "user wants some code to be recompiled - must unwind stack since everything above
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6977
     and including selected method cannot be continued."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6978
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  6979
    ^ self codeAccept:someCode unwind:false "true" category:nil onCancel:nil
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  6980
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  6981
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6982
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6983
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6984
codeAccept:someCode inClass:aClass unwind:doUnwind category:category onCancel:cancelAction
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6985
    "user wants some code to be recompiled - must unwind stack since everything above
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6986
     and including selected method cannot be continued."
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6987
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6988
    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6989
     actually, this is not true, since the active methods will still be
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6990
     executed correctly - however, the code shown in the debugger is no
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6991
     longer in sync (showing the new code) with the executed code.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6992
     Therefore, we hide those contexts to avoid confusion ....
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6993
     If you dont like this behavior, remove the 'inspecting ifFalse:' check below"
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6994
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6995
    "walk up context chain and find highest context which is either the selected context,
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6996
     or - if its a block-context - whose home is the selected context"
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6997
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6998
    |con top newMethod|
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6999
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  7000
    codeView withWaitCursorDo:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7001
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7002
         find the method-home context for this one
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7003
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7004
        doUnwind ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7005
            con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7006
            top := con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7007
            [con notNil] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7008
                (con methodHome == selectedContext) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7009
                    top := con
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7010
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7011
                con := con sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7012
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7013
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7014
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7015
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7016
        "/ provide the classes nameSpace on a query;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7017
        "/ in case we accept while in another nameSpace context,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7018
        "/ (but for a class which is somewhere else)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7019
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7020
        (Class updateChangeFileQuerySignal,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7021
         Class updateChangeListQuerySignal,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7022
         Class updateHistoryLineQuerySignal) answer:true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7023
        do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7024
            Class nameSpaceQuerySignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7025
            answer:(aClass nameSpace)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7026
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7027
                Class packageQuerySignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7028
                answer:(aClass package ? PackageId noProjectID)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7029
                do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7030
                    codeView contents:someCode.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7031
                    newMethod := aClass compilerClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7032
                                     compile:someCode
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7033
                                     forClass:aClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7034
                                     inCategory:category
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7035
                                     notifying:codeView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7036
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7037
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7038
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7039
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7040
        inspecting ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7041
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7042
             if it worked, remove everything up to and including top
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7043
             from context chain
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7044
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7045
            (newMethod notNil and:[newMethod ~~ #Error]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7046
                codeView modified:false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7047
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7048
                doUnwind ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7049
                    selectedContext canReturn ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7050
                        self setContext:(top "sender").
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7051
                        exitAction := #restart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7052
                        selectedContext setLineNumber:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7053
                        self doRestart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7054
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7055
                        self setContext:(top sender).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7056
                        exitAction := #return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7057
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7058
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7059
                    "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7060
                     continue/step is no longer possible
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7061
                    "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7062
                    "/ continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7063
                    "/ canContinue := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7064
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7065
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7066
                contextView selection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7067
                "/ self showSelection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7068
                "/ contextView makeSelectionVisible. "/ scrollToLine:(selection - 1)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7069
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7070
                ^ cancelAction value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7071
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7072
        ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  7073
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  7074
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  7075
    "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
  7076
    "Modified: / 29-08-2006 / 14:22:22 / cg"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  7077
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  7078
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7079
codeAccept:someCode unwind:doUnwind category:givenCategoryOrNil onCancel:cancelAction
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7080
    "user wants some code to be recompiled - must unwind stack since everything above
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7081
     and including selected method cannot be continued."
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7082
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7083
    "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7084
     actually, this is not true, since the active methods will still be
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7085
     executed correctly - however, the code shown in the debugger is no
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7086
     longer in sync (showing the new code) with the executed code.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7087
     Therefore, we hide those contexts to avoid confusion ....
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7088
     If you dont like this behavior, remove the 'inspecting ifFalse:' check below"
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7089
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7090
    "walk up context chain and find highest context which is either the selected context,
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7091
     or - if its a block-context - whose home is the selected context"
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7092
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7093
    |sel implementorClass method category|
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7094
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7095
    codeView withWaitCursorDo:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7096
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7097
"/         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
  7098
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7099
"/        con := selectedContext.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7100
"/        top := con.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7101
"/        [con notNil] whileTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7102
"/            (con methodHome == selectedContext) ifTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7103
"/                top := con
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7104
"/            ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7105
"/            con := con sender
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7106
"/        ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7107
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7108
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7109
         use class&selector to find the method for the compilation
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7110
         and compile.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7111
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7112
        category := givenCategoryOrNil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7113
        sel := selectedContext selector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7114
        implementorClass := selectedContext methodClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7115
        implementorClass notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7116
            category isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7117
                method := selectedContext method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7118
                method isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7119
                    method := implementorClass compiledMethodAt:sel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7120
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7121
                category := method category
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7122
            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7123
        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7124
            implementorClass := selectedContext receiver class.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7125
            implementorClass ~~ Object ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7126
                implementorClass := Dialog
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7127
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7128
                                        initialAnswer:implementorClass name
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7129
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7130
                implementorClass size == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7131
                    ^ cancelAction value "/ cancelled
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7132
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7133
                implementorClass := Smalltalk classNamed:implementorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7134
                implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7135
                    Dialog warn:'No such class'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7136
                    ^ cancelAction value "/ cancelled
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7137
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7138
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7139
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7140
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7141
        self
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7142
            codeAccept:someCode
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7143
            inClass:implementorClass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7144
            unwind:doUnwind
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7145
            category:category
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7146
            onCancel:cancelAction.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7147
    ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7148
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7149
    "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
  7150
    "Modified: / 29-08-2006 / 14:22:22 / cg"
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7151
!
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7152
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7153
codeCompletion
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7154
    |cls|
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7155
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7156
    currentMethod isNil ifTrue:[ ^ self ].
8338
2a8df762ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8327
diff changeset
  7157
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7158
    cls := currentMethod mclass.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7159
    cls isNil ifTrue:[ ^ self ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7160
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7161
    UserInformation handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7162
        ex proceed.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7163
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7164
        DoWhatIMeanSupport codeCompletionForClass:cls context:selectedContext codeView:codeView.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7165
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7166
!
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  7167
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7168
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  7169
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  7170
     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
  7171
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7172
    (exclusive or:[windowGroup isNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7173
        ^ true
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7174
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7175
    ^ super confirm:aString.
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7176
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  7177
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  7178
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  7179
    "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
  7180
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  7181
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  7182
    HaltInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7183
        ignoreBreakpoints ifFalse:[ex reject].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7184
        ('DebugView [info]: halt/breakpoint in debugger at %1 ignored [doShowSelection.]' bindWith:ex suspendedContext) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7185
        ex proceed
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  7186
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7187
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  7188
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  7189
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSĂ­gnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  7190
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  7191
    "Modified: / 17.11.2001 / 22:12:16 / cg"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7192
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7193
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7194
hideStackInspector
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7195
    stackInspector notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7196
        stackInspector destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7197
        stackInspector := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7198
        receiverInspector origin:(0.0 @ 0.0) corner:0.5 @ 1.0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7199
        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
  7200
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7201
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7202
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7203
methodCodeToggleChanged
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7204
    |sel|
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7205
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7206
    sel := contextView selection.
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7207
    sel notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7208
        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
  7209
    ]
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7210
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7211
    "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
  7212
!
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7213
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7214
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  7215
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  7216
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7217
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7218
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7219
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7220
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7221
    evView notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7222
        focusView := evView windowGroup focusView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7223
        focusView isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7224
            focusView := evView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7225
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7226
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7227
        anEvent isKeyPressEvent ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7228
            key := anEvent key.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7229
            rawKey := anEvent rawKey.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7230
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7231
            inCodeView := (focusView == codeView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7232
                          or:[focusView isComponentOf:codeView]).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7233
            inCodeView ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7234
                key == #CodeCompletion ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7235
                    "/ complete the word before/under the cursor.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7236
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7237
                        pushUserEvent:#codeCompletion
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7238
                        for:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7239
                        withArguments:#().
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7240
                    ^ true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7241
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7242
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7243
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7244
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  7245
false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7246
        anEvent isButtonReleaseEvent ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7247
            anEvent view == codeView ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7248
                (RBParser notNil and:[RBParser isLoaded])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7249
                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7250
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7251
                        pushEvent:anEvent.  "/ must be first in queue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7252
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7253
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7254
                      pushUserEvent:#explainSelection
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7255
                      for:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7256
                      withArguments:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7257
                    ^ true  "/ eaten
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7258
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7259
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7260
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  7261
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  7262
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7263
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7264
    ^ false
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7265
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  7266
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7267
setCurrentMethod:aMethodOrNil
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7268
    currentMethod := aMethodOrNil.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7269
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7270
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7271
showSelection:lineNr 
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  7272
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  7273
     Also sent to autoselect an interesting context on entry."
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7274
    
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7275
    Notification 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7276
        handle:[:ex | 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7277
            "/ ex suspendedContext fullPrintAll.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7278
            Transcript showCR:ex description.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7279
            "/ Transcript showCR:ex parameter.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7280
            ex proceed
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7281
        ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7282
        do:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7283
            Error 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7284
                handle:[:ex | 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7285
                    |s con|
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7286
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7287
                    ex signal isControlInterrupt ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7288
                        'DebugView [info]: halt/break ignored - while showing selection in debugger' 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7289
                            infoPrintCR.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7290
                        ex proceed
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7291
                    ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7292
                    ('DebugView [info]: error at %1 when showing selection in debugger ignored' 
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7293
                        bindWith:ex suspendedContext) infoPrintCR.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7294
                    s := '' writeStream.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7295
                    s nextPutLine:'**** error in debugger, while extracting source'.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7296
                    s nextPutLine:'****'.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7297
                    s nextPutLine:'**** ',(ex description).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7298
                    s nextPutLine:'****'.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7299
                    con := ex suspendedContext.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7300
                    s nextPutLine:'**** ',(con printString).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7301
                    con := con sender.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7302
                    HaltInterrupt ignoreIn:[ con fullPrintAllOn:s. ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7303
                    
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7304
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7305
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7306
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7307
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  7308
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7309
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7310
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7311
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7312
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7313
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  7314
"/                            ].
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7315
                    
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7316
                    codeView contents:(s contents).
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7317
                    ex return.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7318
                ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7319
                do:[ self doShowSelection:lineNr ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7320
        ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7321
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7322
    "Modified: / 19-07-2012 / 10:56:58 / cg"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  7323
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  7324
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7325
showStackInspectorFor:con
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7326
    stackInspector isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7327
        receiverInspector origin:(0.0 @ 0.0) corner:0.3 @ 1.0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7328
        contextInspector origin:(0.3 @ 0.0) corner:(0.6 @ 1.0).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7329
        stackInspector := InspectorView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7330
                    origin:(0.6 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7331
                    corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7332
                    in:contextInspector superView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7333
        stackInspector realize.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7334
        stackInspector fieldListLabel:'Stack'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7335
        stackInspector hideReceiver:true
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7336
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7337
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7338
    stackInspector showLast
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7339
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  7340
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7341
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7342
    "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
  7343
     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
  7344
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
  7345
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
  7346
     implementorClass lineNrInMethod rec m line
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7347
     sender selSender tryVars possibleBlocks errMsg
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  7348
     codeSet highlighter evaluatorClass
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  7349
     canDefine callee searchClass originalMethod|
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  7350
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  7351
    canDefine := false.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7352
    self setCurrentMethod:nil.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  7353
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7354
    contextArray notNil ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7355
        lineNr <= contextArray size ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7356
            con := contextArray at:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7357
            callee := contextArray at:lineNr-1 ifAbsent:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7358
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7359
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7360
         clicking on the '** ...'-line shows more ...
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7361
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7362
        con isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7363
            line := contextView list at:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7364
            (line startsWith:'**') ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7365
                self showMore.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7366
                lineNr >= contextArray size ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7367
                    contextView setSelection:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7368
                    con := contextArray at:lineNr ifAbsent:nil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7369
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7370
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7371
            con isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7372
                codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7373
                ^ self
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7374
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7375
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7376
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7377
        selectedContext := con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7378
        m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7379
        (m notNil and:[selectedContext notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7380
            m enableAll:#(browseImplementors browseSenders inspectContext)
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7381
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7382
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7383
        self withExecuteCursorDo:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7384
            codeSet := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7385
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7386
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7387
             give it to the (lower right) inspector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7388
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7389
            Error handle:[:ex |
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  7390
                'DebugView [warning]: error while accessing context: ' errorPrint.
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  7391
                ex description errorPrintCR.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7392
                contextInspector inspect:nil.
11595
Claus Gittinger <cg@exept.de>
parents: 11573
diff changeset
  7393
                ex suspendedContext fullPrintAllOn: Transcript.
9479
7364779433be changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 9446
diff changeset
  7394
"/ ex reject.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7395
            ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7396
                contextInspector inspect:con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7397
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7398
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7399
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7400
            "/ show a stack inspector sometimes
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7401
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7402
            con hasStackToShow ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7403
                self showStackInspectorFor:con
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7404
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7405
                self hideStackInspector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7406
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7407
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7408
            homeContext := con methodHome.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7409
            con canReturn ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7410
                returnButton enable. restartButton enable.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7411
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7412
                returnButton disable. restartButton disable.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7413
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7414
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7415
            lineNrInMethod := con lineNumber.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7416
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7417
            canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7418
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7419
            homeContext isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7420
                "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7421
                 mhmh - an optimized block
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7422
                 should get the block here, and get the method from
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7423
                 that one ...
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7424
                 But in the current version, there is no easy way to get to the block
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7425
                 since that one is not in the context.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7426
                 A future new block calling scheme will fix this
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7427
                 (passing the block instead of the home as block argument).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7428
                "
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7429
                (method := con method) isNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7430
                    "temporary kludge - peek into the sender context.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7431
                     If its a do-like method and there is a single block variable
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7432
                     in the args or temporaries, that must be the one.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7433
                     This helps in some cases.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7434
                    "
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7435
                    (sender := con sender) notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7436
                        tryVars := false.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7437
                        (selSender := sender selector) notNil ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7438
                            ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7439
                                tryVars := true.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7440
                            ]
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7441
                        ].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7442
                        tryVars ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7443
                            possibleBlocks := sender argsAndVars select:[:v | v isBlock].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7444
                            possibleBlocks := possibleBlocks select:[:b | b home isNil].
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7445
                            possibleBlocks size == 1 ifTrue:[
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7446
                                method := possibleBlocks first method.
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7447
                            ].
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7448
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7449
                    ].
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7450
                ]
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7451
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7452
                "fetch rec here - so we won't need context in doItAction"
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7453
                rec := homeContext receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7454
                sel := homeContext selector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7455
                sel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7456
                    canAccept := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7457
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7458
                    implementorClass := homeContext methodClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7459
                    implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7460
                        Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7461
                            ex signal == BreakPointInterrupt ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7462
                                ex proceed.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7463
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7464
                            code := 'error while asking method for its source'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7465
                            code := code , Character cr , ex signal printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7466
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7467
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7468
                            canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7469
                            ex return.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7470
                        ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7471
                            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7472
                             special: look if this context was created by
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7473
                             valueWithReceiver kind of method invocation;
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7474
                             if so, grab the method from the sender and show it
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7475
                            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7476
                            ((sender := homeContext sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7477
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7478
                            and:[sender receiver isMethod]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7479
                                method := sender receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7480
                                canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7481
                            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7482
                                (method := con method) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7483
                                    canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7484
                                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7485
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7486
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7487
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7488
                        method := implementorClass compiledMethodAt:sel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7489
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7490
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7491
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7492
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7493
            homeContext notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7494
                searchClass := homeContext searchClass ? rec class.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7495
                currentMethod := searchClass lookupMethodFor:sel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7496
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7497
            originalMethod := currentMethod.
11602
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  7498
            (currentMethod notNil 
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  7499
            and:[currentMethod ~~ method
b04d5d5e02c7 single stepping in wrapped methods
Claus Gittinger <cg@exept.de>
parents: 11595
diff changeset
  7500
            and:[ (currentMethod isWrapped and:[ method == currentMethod originalMethod]) not ]]) ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7501
                originalMethod := method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7502
                methodCodeToggleSelectionHolder value = 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7503
                    method := originalMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7504
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7505
                    method := currentMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7506
                    lineNrInMethod := nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7507
                    canAccept := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7508
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7509
                methodCodeToggle beVisible.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7510
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7511
                methodCodeToggle beInvisible.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7512
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7513
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7514
            code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7515
                errMsg := nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7516
                method isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7517
                    "/ fall back heuristics
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7518
                    con isBlockContext ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7519
                        ((sender := con sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7520
                        and:[((sender selector ? '') startsWith:'value')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7521
                        and:[sender receiver isBlock]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7522
                            code := sender receiver source.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7523
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7524
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7525
                        ((sender := con sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7526
                        and:[((sender selector ? '') startsWith:'valueWith')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7527
                        and:[sender receiver isMethod]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7528
                            method := sender receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7529
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7530
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7531
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7532
                method notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7533
                    Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7534
                        ex signal isControlInterrupt ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7535
                            ex proceed.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7536
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7537
                        code := 'error while asking method for its source'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7538
                        code := code , Character cr , ex signal printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7539
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7540
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7541
                        canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7542
                        ex return.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7543
                    ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7544
                        self sensor shiftDown ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7545
                            code := method decompiledSource
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7546
                        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7547
                            code := method source.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7548
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7549
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7550
                    code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7551
                        method sourceFilename notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7552
                            codeView contents:(resources
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7553
                                                       string:'** no sourcefile: %1 **'
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7554
                                                       with:method sourceFilename).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7555
                            codeView flash.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7556
                            codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7557
                        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7558
                            [
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7559
                                |src|
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7560
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7561
                                src := String streamContents:[:s | Decompiler decompile:method to:s].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7562
                                codeView contents:src.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7563
                                codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7564
                            ] on: Error do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7565
                                errMsg := '** no source **'
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7566
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7567
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7568
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7569
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7570
                    homeContext isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7571
                        errMsg := '** sorry; cannot show code of all optimized blocks (yet) **'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7572
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7573
                        errMsg := '** no method - no source **'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7574
                        canDefine := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7575
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7576
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7577
                errMsg notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7578
                   self showError:errMsg.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7579
                   codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7580
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7581
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7582
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7583
            code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7584
                "/ canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7585
                codeSet ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7586
                    codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7587
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7588
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7589
                lineNrInMethod notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7590
                    lineNrInMethod == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7591
                        (method notNil and:[method isJavaMethod]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7592
                            lineNrInMethod := method lineNumber
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7593
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7594
                        "/ guess lineNumber from sent-messages selector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7595
                        "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7596
                        lineNrInMethod == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7597
                            |conIdx sentContext messages|
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7598
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7599
                            conIdx := contextArray identityIndexOf:con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7600
                            conIdx > 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7601
                                sentContext := contextArray at:conIdx-1.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7602
                                sentContext isBlockContext ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7603
                                    (method notNil and:[code notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7604
                                        messages := method messagesSent.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7605
                                        messages size == 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7606
                                            sentContext selector == messages first ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7607
                                                lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7608
                                            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7609
                                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7610
                                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7611
                                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7612
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7613
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7614
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7615
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7616
                codeView isCodeView2 ifTrue:[
10649
3f480fd28a48 changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 10628
diff changeset
  7617
                    codeView model setValue: code.
3f480fd28a48 changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 10628
diff changeset
  7618
                    codeView model changed.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7619
                    codeView methodHolder value: method.
10752
77650773a9ea Fixed class holder for CodeView2
vrany
parents: 10649
diff changeset
  7620
                    codeView classHolder value: ((method respondsTo: #mclass) ifTrue:[method mclass] ifFalse:[rec class])
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7621
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7622
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7623
                UserPreferences current syntaxColoring ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7624
                    implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7625
                        (con isBlockContext
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7626
                        and:[con home isNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7627
                        and:[con guessedHome notNil]])
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7628
                        ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7629
                            implementorClass := con guessedHome mclass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7630
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7631
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7632
                    implementorClass notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7633
                        (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7634
                            code size < 100000 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7635
                                Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7636
                                ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7637
                                    code := highlighter formatMethod:code in:implementorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7638
                                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7639
                            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7640
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7641
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7642
                ].
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  7643
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  7644
"/                code ~= (codeView contents) ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7645
                    codeView setContents:code.
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  7646
"/                ].
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7647
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7648
                (lineNrInMethod notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7649
                and:[lineNrInMethod ~~ 0
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7650
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  7651
lineNrInMethod == 255 ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7652
                    (lineNrInMethod == 255
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7653
                    and:[method notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7654
                    and:[method hasCode not]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7655
                        "/ means: do not really know in interpreted methods
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7656
                        codeView selectFromLine:255 col:1 toLine:codeView list size + 1 col:0.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7657
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7658
                        codeView selectLine:lineNrInMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7659
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7660
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  7661
].
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7662
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7663
                    codeView unselect.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7664
                    codeView scrollToTop
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7665
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7666
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7667
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7668
            codeView acceptEnabled:canAccept.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7669
            canAccept ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7670
                codeView acceptAction:[:code | self codeAccept:code asString]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7671
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7672
                codeView acceptAction:[:code | self beep]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7673
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7674
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7675
            receiverInspector inspect:rec.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7676
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7677
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7678
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7679
             the one below is wrong: currently, the
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7680
             evaluator cannot handle passed contexts.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7681
             Once it does, pass con as in:-arg
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7682
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7683
            (rec isJavaObject
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7684
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7685
                "/ although a java object, use the smalltalk parser here for doIts.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7686
                evaluatorClass := Parser
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7687
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7688
                (method notNil and:[method mclass notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7689
                    evaluatorClass := method mclass evaluatorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7690
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7691
                    evaluatorClass := rec class evaluatorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7692
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7693
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7694
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7695
            codeView doItAction:[:theCode |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7696
                             evaluatorClass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7697
                                 evaluate:theCode
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7698
                                 in:actualContext
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7699
                                 receiver:rec
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7700
                                 notifying:codeView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7701
                                 logged:true
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7702
                                 ifFail:nil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7703
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7704
            self setCurrentMethod:method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7705
11610
356cfb510fd0 changed:12 methods
Claus Gittinger <cg@exept.de>
parents: 11604
diff changeset
  7706
            selectedContext := homeContext ? con.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7707
            actualContext := con
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7708
        ].
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7709
    ] ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7710
        codeView contents:nil.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7711
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7712
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7713
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7714
    con isContext ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7715
        sendButton disable.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7716
    ] ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7717
        sendButton enable.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7718
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7719
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7720
    "clear out locals to prevent keeping around unneeded contexts
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7721
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7722
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7723
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7724
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7725
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7726
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7727
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7728
    (callee notNil
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7729
    and:[callee method notNil
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7730
    and:[callee method selector == #subclassResponsibility]]
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7731
    ) ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7732
        canDefine := true.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7733
    ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7734
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7735
    canDefine ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7736
        defineButton beVisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7737
    ] ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7738
        defineButton beInvisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7739
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7740
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7741
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7742
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7743
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7744
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7745
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  7746
    "Created: / 14-08-1997 / 20:15:00 / cg"
10752
77650773a9ea Fixed class holder for CodeView2
vrany
parents: 10649
diff changeset
  7747
    "Modified: / 05-10-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11647
Claus Gittinger <cg@exept.de>
parents: 11645
diff changeset
  7748
    "Modified: / 23-07-2012 / 12:23:49 / cg"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7749
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7750
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7751
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'accessing'!
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7752
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7753
ignoreCount:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7754
    ignoreCount := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7755
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7756
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7757
ignoreEndTime:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7758
    ignoreEndTime := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7759
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7760
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7761
ignoreUntilShiftKeyPressed:aBoolean
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7762
    ignoreUntilShiftKeyPressed := aBoolean.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7763
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7764
    "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
  7765
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7766
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7767
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'misc'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7768
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7769
decrementIgnoreCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7770
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7771
        ignoreCount > 0 ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7772
            ignoreCount := ignoreCount - 1
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7773
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7774
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7775
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7776
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7777
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7778
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7779
printConditionOn:aStream
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7780
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7781
        aStream nextPutAll:' until shiftKey pressed'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7782
    ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7783
        ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7784
            aStream nextPutAll:' until '.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7785
            ignoreEndTime printOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7786
        ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7787
            (ignoreCount > 0) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7788
                aStream nextPutAll:' for '.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7789
                ignoreCount printOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7790
            ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7791
                (ignoreCount < 0) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7792
                    aStream nextPutAll:' forEver'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7793
                ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7794
                    aStream nextPutAll:' no longer'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7795
                ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7796
            ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7797
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7798
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7799
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7800
    "Modified: / 27-01-2012 / 11:43:10 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7801
    "Created: / 06-03-2012 / 12:41:10 / cg"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7802
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7803
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7804
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7805
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7806
haltIgnoredInfoString
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7807
    "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
  7808
     nil if not ignored"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7809
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7810
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7811
        ignoreCount > 0 ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7812
            ^ '%1 more calls ignored' bindWith:ignoreCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7813
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7814
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7815
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7816
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7817
        (ignoreEndTime > Timestamp now) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7818
            ^ 'ignored until %1' bindWith:ignoreEndTime
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7819
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7820
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7821
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7822
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7823
        Display shiftDown ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7824
            ^ 'ignored until shiftKey is pressed'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7825
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7826
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7827
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7828
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7829
    ^ 'ignored until reenabled'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7830
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7831
    "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
  7832
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7833
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7834
isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7835
    "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
  7836
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7837
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7838
        ^ ignoreEndTime > Timestamp now
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7839
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7840
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7841
        ^ ignoreCount > 0
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7842
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7843
    ^ false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7844
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7845
    "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
  7846
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7847
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7848
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7849
    ^ false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7850
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7851
    "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
  7852
    "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
  7853
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7854
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7855
isForBreakpointWithParameter:paramArg
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7856
    ^ false
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7857
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7858
    "Modified: / 27-01-2012 / 11:36:01 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7859
    "Created: / 06-03-2012 / 14:36:28 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7860
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7861
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7862
isHaltIgnored
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7863
    "true if this halt should be ignored"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7864
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7865
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7866
        ^ Display shiftDown not
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7867
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7868
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7869
        ^ ignoreCount > 0
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7870
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7871
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7872
        ^ ignoreEndTime > Timestamp now
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7873
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7874
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7875
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7876
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7877
    "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
  7878
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7879
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7880
!DebugView::IgnoredHalt methodsFor:'accessing'!
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7881
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7882
method
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7883
    |m|
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7884
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7885
    weakMethodHolder == #all ifTrue:[^ weakMethodHolder ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7886
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7887
    m := weakMethodHolder at:1.
9796
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7888
"/ 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
  7889
"/
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7890
"/    m notNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7891
"/        m mclass isNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7892
"/            "/ no longer valid
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7893
"/            weakMethodHolder at:1 put:nil.
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7894
"/            ^ nil
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7895
"/        ].
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7896
"/    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7897
    ^ m
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7898
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7899
    "Modified: / 08-05-2011 / 10:28:10 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7900
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7901
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7902
method:methodArg lineNumber:lineNumberArg
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7903
    "/ self assert:(methodArg mclass notNil).
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7904
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7905
    methodArg == #all ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7906
        weakMethodHolder := methodArg
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7907
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7908
        weakMethodHolder := WeakArray with:methodArg.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7909
    ].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7910
    lineNumber := lineNumberArg.
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7911
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7912
    "Modified: / 08-05-2011 / 10:28:41 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7913
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7914
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7915
!DebugView::IgnoredHalt methodsFor:'printing'!
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7916
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7917
printOn:aStream
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7918
    |method|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7919
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7920
    (method := self method) isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7921
        aStream nextPutAll:'an obsolete IgnoredHalt'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7922
        ^ self
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7923
    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7924
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7925
    aStream nextPutAll:'Ignore '.
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7926
    method isSymbol ifTrue:[
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7927
        method printOn:aStream.
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7928
    ] ifFalse:[
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7929
        method whoString printOn:aStream.
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7930
    ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7931
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7932
11704
36941d3a2a03 changed: #codeAspect
Claus Gittinger <cg@exept.de>
parents: 11697
diff changeset
  7933
    "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
  7934
! !
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7935
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7936
!DebugView::IgnoredHalt methodsFor:'queries'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7937
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7938
isActive
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7939
    "true if this ignore-entry is still active"
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7940
9796
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7941
    self method isNil ifTrue:[self halt. ^ false ].    "/ method no longer valid
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7942
    ^ super isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7943
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7944
    "Modified: / 06-03-2012 / 12:40:20 / cg"
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7945
!
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7946
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7947
isForMethod:aMethod line:line
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7948
    "/ check in this order - method has a flushing side-effect, which is useful here...
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7949
    weakMethodHolder == #all ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7950
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7951
    ^ (aMethod = self method) and:[ line = lineNumber ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7952
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7953
    "Modified: / 08-05-2011 / 10:27:31 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7954
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7955
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7956
isHaltIgnoredInMethod:aMethod line:line
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
  7957
    "/ 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
  7958
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7959
    (self isForMethod:aMethod line:line) ifFalse:[^ false].
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
  7960
    "/ Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7961
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7962
    ^ self isHaltIgnored
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7963
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7964
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7965
!DebugView::IgnoredBreakpoint methodsFor:'accessing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7966
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7967
parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7968
    ^ parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7969
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7970
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7971
parameter:something
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7972
    parameter := something.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7973
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7974
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7975
!DebugView::IgnoredBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7976
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7977
printOn:aStream
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7978
    aStream nextPutAll:'Ignore breakpoint:#', parameter.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7979
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7980
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7981
    "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
  7982
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7983
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7984
!DebugView::IgnoredBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7985
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7986
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7987
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7988
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7989
    "Created: / 06-03-2012 / 12:54:35 / cg"
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7990
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7991
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7992
isForBreakpointWithParameter:paramArg
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7993
    ^ paramArg = parameter
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7994
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7995
    "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
  7996
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7997
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7998
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7999
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  8000
version
11819
0829ba326853 changed: #exit_restart
Claus Gittinger <cg@exept.de>
parents: 11818
diff changeset
  8001
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.556 2012-09-26 13:10:09 cg Exp $'
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  8002
!
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  8003
8952
7742c63ff6f5 catch halts in: #showSelection:
Claus Gittinger <cg@exept.de>
parents: 8745
diff changeset
  8004
version_CVS
11819
0829ba326853 changed: #exit_restart
Claus Gittinger <cg@exept.de>
parents: 11818
diff changeset
  8005
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.556 2012-09-26 13:10:09 cg Exp $'
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8006
!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8007
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8008
version_SVN
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  8009
    ^ '§Id: DebugView.st 7818 2011-08-18 11:42:39Z vranyj1 §'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  8010
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  8011
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  8012
DebugView initialize!