DebugView.st
author Claus Gittinger <cg@exept.de>
Mon, 19 Mar 2012 17:41:24 +0100
changeset 11443 6e83697ab8c9
parent 11391 730b258a005f
child 11457 b304a867b5e0
permissions -rw-r--r--
changed: #menuSpec
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
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    15
	instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    16
		receiverInspector contextInspector contextArray selectedContext
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    17
		catchBlock grabber mayProceed traceView tracing bigStep
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    18
		skipLineNr steppedContextAddress abortButton terminateButton
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    19
		continueButton stepButton nextButton nextOverButton nextOutButton
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    20
		sendButton returnButton restartButton exclusive inspecting
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    21
		nChainShown inspectedProcess updateProcess stopButton
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    22
		updateButton defineButton monitorToggle stepping
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    23
		steppedContextLineno stepForReturn actualContext inWrap
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    24
		stackInspector steppedContext wrapperContext verboseBacktrace
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    25
		firstContext stepHow cachable currentMethod ignoreBreakpoints
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    26
		stepUntilEntering lastStepUntilEntering
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    27
		lastSelectionInReceiverInspector lastSelectionInContextInspector
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    28
		canShowMore exitAbort reportButton setOfHiddenCallingSelectors
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    29
		isStoppedAtHaltOrBreakPoint exceptionInfoLabel methodCodeToggle
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    30
		methodCodeToggleSelectionHolder
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    31
		isStoppedAtBreakPointWithParameter breakPointParameter'
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    32
	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    33
		DebuggingDebugger DefaultDebuggerBackgroundColor
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    34
		InitialNChainShown IgnoredHalts ShowThreadID LastIgnoreHaltNTimes
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
    35
		LastIgnoreHaltDuration LastExtent LastOrigin RememberedCallChain'
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    36
	poolDictionaries:''
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    37
	category:'Interface-Debugger'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    38
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    39
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    40
Object subclass:#IgnoredHaltOrBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    41
	instanceVariableNames:'ignoreEndTime ignoreCount ignoreUntilShiftKeyPressed'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    42
	classVariableNames:''
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    43
	poolDictionaries:''
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    44
	privateIn:DebugView
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    45
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    46
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    47
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredHalt
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    48
	instanceVariableNames:'weakMethodHolder lineNumber'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    49
	classVariableNames:''
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    50
	poolDictionaries:''
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    51
	privateIn:DebugView
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    52
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    53
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    54
DebugView::IgnoredHaltOrBreakpoint subclass:#IgnoredBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
    55
	instanceVariableNames:'parameter'
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    56
	classVariableNames:''
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    57
	poolDictionaries:''
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
    58
	privateIn:DebugView
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    59
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    60
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    61
!DebugView class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    62
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    63
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    64
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    65
 COPYRIGHT (c) 1989 by Claus Gittinger
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
    66
              All Rights Reserved
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    67
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    68
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    69
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    70
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    71
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    72
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    73
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    74
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    75
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    76
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    77
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    78
"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    79
    This class implements a graphical debugger interface.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    80
    The debugger usually sits on top of the faulting process,
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
    81
    taking over its event processing.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    82
    (this is different from other Smalltalk debuggers, which control
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    83
     the debuggee as a separate process. Consider this an historic
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    84
     leftover - the debugger was one of the first applications written for
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    85
     ST/X; however, why should we change it without a particular need ...).
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    86
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    87
    Only the 'stopped' debugged process is affected;
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    88
    other processes continue to respond to events.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    89
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    90
    The one exception is when an error occurs within the dispatcher process
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    91
    or in one of the eventhandler processes - in this case, the debugger
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    92
    will sit on an exclusive display connection.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    93
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    94
    The whole debugging will be changed, once the required process primitives
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    95
    are available, which allow control of another processes execution
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    96
    (i.e. single-step, restart & return). The setup will be changed then,
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    97
    to have the debugger control the debuggee (i.e. two processes)
35
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    98
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    99
    See additional information in 'doc/misc/debugger.doc'.
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   100
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   101
    Notice:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   102
        the DebugView class caches the last used debugger in a class
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   103
        variable. It may happen, that a malfunctioning debugger (for example,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   104
        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
   105
        debugger comes up without showing any contents. In this case, close
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   106
        (or destroy) the broken debugView, and execute
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   107
            Debugger newDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   108
        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
   109
        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
   110
        avoid this problem.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   111
        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
   112
        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
   113
        effective.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   114
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   115
    [author:]
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   116
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   117
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
   118
    [see also:]
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   119
        Exception Signal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   120
        Process
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   121
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   122
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   123
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   124
!DebugView class methodsFor:'initialization'!
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   125
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   126
initialize
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
   127
    InitialNChainShown := 50.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   128
    "/ DefaultDebuggerBackgroundColor := nil.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   129
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   130
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   131
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   132
    "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
   133
    "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
   134
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   135
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   136
reinitialize
7822
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   137
    "reinitialize after an image-restart"
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   138
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   139
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   140
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   141
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   142
!DebugView class methodsFor:'cleanup'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   143
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   144
lowSpaceCleanup
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   145
    "in low memory situations, give up cached debuggers"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   146
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   147
    CachedDebugger := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   148
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   149
    OpenDebuggers := nil.
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   150
    RememberedCallChain := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   151
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   152
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   153
     DebugView lowSpaceCleanup
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   154
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   155
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   156
    "Modified: / 08-03-2012 / 01:30:21 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   157
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   158
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   159
newDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   160
    "force creation of a new debugger (give up cached debuggers)"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   161
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   162
    CachedDebugger := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   163
    CachedExclusive := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   164
    OpenDebuggers := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   165
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   166
    (Debugger isBehavior and:[Debugger name = #DebugView]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   167
        Debugger := self
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   168
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   169
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   170
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   171
     DebugView newDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   172
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   173
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   174
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   175
!DebugView class methodsFor:'defaults'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   176
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   177
defaultIcon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   178
    "return the browsers default window icon"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   179
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   180
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   181
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   182
    ^ ToolbarIconLibrary debug22x22Icon
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   183
    "/ ^ ToolbarIconLibrary debugIt20x20Icon
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   184
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   185
    "Modified: / 11-02-2007 / 11:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   186
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   187
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   188
defaultIconForAboutBox
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   189
    <resource: #programImage>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   190
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   191
    ^ ToolbarIconLibrary debug22x22IconForBlackBackgound
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   192
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   193
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   194
defaultVerboseBacktrace
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   195
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   196
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   197
    ^ UserPreferences current verboseBacktraceInDebugger
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   198
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   199
    "Created: 11.1.1997 / 12:14:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   200
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   201
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   202
defaultVerboseBacktrace:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   203
    <resource: #obsolete>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   204
    self obsoleteMethodWarning.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   205
    UserPreferences current verboseBacktraceInDebugger:aBoolean
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   206
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   207
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   208
updateStyleCache
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   209
    "extract values from the styleSheet and cache them in class variables"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   210
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   211
    <resource: #style (#'debugView.viewBackgroundColor')>
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   212
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   213
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   214
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   215
    "Modified: / 17.11.2001 / 17:31:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   216
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   217
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   218
!DebugView class methodsFor:'ignoring halts'!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   219
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   220
haltIgnoreInformationFor:haltingMethod atLineNr:lineNrInHaltingMethod
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   221
    "the information (if any) about the ignore-state of a halt"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   222
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   223
    IgnoredHalts isNil ifTrue:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   224
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   225
    IgnoredHalts do:[:ign |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   226
        (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   227
            ^ ign
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   228
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   229
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   230
    ^ nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   231
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   232
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   233
hasIgnoredHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   234
    self removeInactiveIgnores.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   235
    ^ IgnoredHalts notEmptyOrNil
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   236
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   237
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   238
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
   239
    "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
   240
     or until some time has elapsed.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   241
     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
   242
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   243
    |oldEntry ign|
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
    IgnoredHalts notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   246
        self removeInactiveIgnores.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   247
        oldEntry := IgnoredHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   248
                        detect:[:ign | ign isForBreakpointWithParameter:parameterOrNil]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   249
                        ifNone:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   250
        oldEntry notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   251
            IgnoredHalts remove:oldEntry ifAbsent:[].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   252
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   253
    ].
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
    (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
   256
        IgnoredHalts isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   257
            IgnoredHalts := OrderedCollection new.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   258
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   259
        ign := IgnoredHalt new breakpointWithParameter:parameterOrNil.
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
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   262
            ign ignoreCount:countOrNil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   263
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   264
        (dTOrNil notNil) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   265
            ign ignoreEndTime:(Timestamp now + dTOrNil).
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   266
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   267
        untilShiftKey == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   268
            ign ignoreUntilShiftKeyPressed:true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   269
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   270
        IgnoredHalts add:ign.
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
    Smalltalk changed:#ignoredHalts.
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
    "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
   275
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   276
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   277
ignoreHaltIn:haltingMethod at:lineNrOfHalt forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   278
    "remember to ignore a halt in some method for some number of invocations
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   279
     or until some time has elapsed.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   280
     With nil count and time arguments, such an ignored halt is reactivated"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   281
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   282
    |oldEntry ign|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   284
    IgnoredHalts notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   285
        self removeInactiveIgnores.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   286
        oldEntry := IgnoredHalts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   287
                        detect:[:ign | ign isForMethod:haltingMethod line:lineNrOfHalt]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   288
                        ifNone:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   289
        oldEntry notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   290
            IgnoredHalts remove:oldEntry ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   291
        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   292
    ].
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
    (countOrNil notNil or:[dTOrNil notNil or:[untilShiftKey == true]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   295
        IgnoredHalts isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   296
            IgnoredHalts := OrderedCollection new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   297
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   298
        ign := IgnoredHalt new method:haltingMethod lineNumber:lineNrOfHalt.
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
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   301
            ign ignoreCount:countOrNil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   302
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   303
        (dTOrNil notNil) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   304
            ign ignoreEndTime:(Timestamp now + dTOrNil).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   305
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   306
        untilShiftKey == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   307
            ign ignoreUntilShiftKeyPressed:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   308
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   309
        IgnoredHalts add:ign.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   310
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   311
    Smalltalk changed:#ignoredHalts.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   312
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   313
    "Created: / 27-01-2012 / 11:33:38 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   314
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   315
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   316
isBreakpointToBeIgnoredForParameter:parameter modifyEntryCount:modifyCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   317
    "/ should a breakpoint be ignored ?
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   318
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   319
    IgnoredHalts isNil ifTrue:[^ false].
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
    "/ 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
   322
    IgnoredHalts do:[:ign |
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
   323
        (ign isForBreakpointWithParameter:parameter) ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   324
            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
   325
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   326
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   327
            ign isHaltIgnored ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   328
                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
   329
                IgnoredHalts remove:ign ifAbsent:[].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   330
            ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   331
            ^ true.
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
    ].
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
    IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   336
    IgnoredHalts isEmpty ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   337
        IgnoredHalts := nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   338
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   339
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   340
    ^ false.
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
    "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
   343
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   344
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   345
isHaltToBeIgnored
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   346
    |c sender haltingMethod lineNrInHaltingMethod breakpointParameter|
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   347
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   348
    "/ should a halt be ignored ?
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   349
    IgnoredHalts isNil ifTrue:[^ false].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   350
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   351
    "/ look for a breakpoint-wrapper's context
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   352
    c := thisContext findNextContextWithSelector:#doRaise or:nil or:nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   353
    c notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   354
        (c receiver isKindOf:NoHandlerError) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   355
            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
   356
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   357
        (c receiver isKindOf:BreakPointInterrupt) ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   358
            c := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   359
        ] ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   360
            [ ((sender := c sender) receiver isKindOf:BreakPointInterrupt)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   361
            or:[ sender receiver == BreakPointInterrupt ]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   362
                c := sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   363
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   364
            [ (sender := c sender) isBlockContext ] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   365
                c := sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   366
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   367
            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
   368
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   369
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   370
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   371
    c isNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   372
        "/ look for halts or explicit breakpoints
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   373
        c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   374
        c isNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   375
            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
   376
            c isNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   377
               ^ false
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   378
            ].
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   379
            breakpointParameter := c argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   380
            (self isBreakpointToBeIgnoredForParameter:breakpointParameter modifyEntryCount:true) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   381
                ^ true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   382
            ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   383
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   384
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   385
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   386
    c := c sender.
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   387
    "/ a code-breakpoint ?
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   388
    (c receiver isKindOf:Breakpoint) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   389
        c := c sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   390
    ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   391
    haltingMethod := c method.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   392
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   393
    haltingMethod isWrapped ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   394
        lineNrInHaltingMethod := 1.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   395
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   396
        lineNrInHaltingMethod := c lineNumber.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   397
        "/ Transcript showCR:c.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   398
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   399
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   400
    ^ self
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   401
        isHaltToBeIgnoredIn:haltingMethod
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   402
        atLineNr:lineNrInHaltingMethod
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
   403
        modifyEntryCount:true.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   404
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   405
    "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
   406
    "Modified: / 06-03-2012 / 12:54:09 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   407
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   408
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   409
isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   410
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   411
        isHaltToBeIgnoredIn:haltingMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   412
        atLineNr:lineNrInHaltingMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   413
        modifyEntryCount:false
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   414
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   415
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   416
isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod modifyEntryCount:modifyCount
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   417
    "should a halt be ignored ?"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   418
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   419
    IgnoredHalts isNil ifTrue:[^ false].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   420
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   421
    "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   422
    IgnoredHalts do:[:ign |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   423
        (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
11364
af95026ebbda changed: #isHaltToBeIgnoredIn:atLineNr:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11305
diff changeset
   424
            Transcript show:'Debugger [info]: halt/break ignored in ', haltingMethod whoString.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   425
            Transcript show:' ('; show:ign; showCR:')'.
11364
af95026ebbda changed: #isHaltToBeIgnoredIn:atLineNr:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11305
diff changeset
   426
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   427
            modifyCount ifTrue:[ ign decrementIgnoreCount ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   428
            ign isHaltIgnored ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   429
                Transcript showCR:'Debugger [info]: no longer ignore halt in ', haltingMethod whoString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   430
                IgnoredHalts remove:ign ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   431
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   432
            ^ true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   433
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   434
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   435
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   436
    IgnoredHalts := IgnoredHalts reject:[:ign | ign isActive not].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   437
    IgnoredHalts isEmpty ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   438
        IgnoredHalts := nil.
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   439
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   440
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   441
    ^ false.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   442
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   443
    "Modified (comment): / 06-03-2012 / 12:51:43 / cg"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   444
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   445
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   446
removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   447
    IgnoredHalts notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   448
        IgnoredHalts := IgnoredHalts select:[:i | i isActive].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   449
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   450
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   451
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   452
stopIgnoringHalts
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   453
    "forget about all ignored halts"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   454
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   455
    IgnoredHalts := nil.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   456
    Smalltalk changed:#ignoredHalts.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   457
! !
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   458
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
   459
!DebugView class methodsFor:'instance creation / entering'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   460
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   461
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   462
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   463
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   464
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   465
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   466
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   467
        enter:thisContext sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   468
        withMessage:'debugger entered'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   469
        mayProceed:true.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   470
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   471
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   472
enter:aContext withMessage:aString
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   473
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   474
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   475
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   476
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   477
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   478
        enter:aContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   479
        withMessage:aString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   480
        mayProceed:true
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   481
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   482
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   483
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   484
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   485
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   486
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   487
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   488
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   489
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   490
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
   491
    |active|
93
claus
parents: 92
diff changeset
   492
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
   493
    StepInterruptPending := nil.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   494
    ControlInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   495
        'DebugView [info]: breakpoint in debugger setup ignored [enter.]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   496
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   497
        ex proceed
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   498
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   499
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   500
         well, it could be a stepping or sending debugger up there;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   501
         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
   502
         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
   503
         stepping debugger to come up again instead of a new one.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   504
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   505
        OpenDebuggers notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   506
            active := Processor activeProcess.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   507
            OpenDebuggers do:[:aDebugger |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   508
                (aDebugger notNil and:[aDebugger ~~ 0]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   509
                    (aDebugger inspectedProcess == active) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   510
                        aDebugger device isOpen ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   511
                            "/ 'entering stepping debugger again' printNL.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   512
                            aDebugger unstep.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   513
                            aDebugger setLabelFor:aString in:active.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   514
                            aDebugger mayProceed:mayProceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   515
                            ^ aDebugger enter:aContext select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   516
                        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   517
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   518
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   519
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   520
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   521
    ].
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   522
    ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   523
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   524
    "Modified: / 18.11.2001 / 00:48:03 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   525
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   526
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   527
enterException:ex
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   528
    "enter a debugger; if this is a recursive invocation, enter
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   529
     a MiniDebugger instead.
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   530
     This is the standard way of entering the debugger;
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   531
     sent from error- and halt messages."
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   532
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   533
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   534
        enter:ex returnableSuspendedContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   535
        withMessage:ex descriptionForDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   536
        mayProceed:(ex mayProceed).
8347
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   537
!
724f40cfdbc6 +enterException
Claus Gittinger <cg@exept.de>
parents: 8338
diff changeset
   538
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   539
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   540
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   541
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   542
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   543
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   544
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   545
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   546
    StepInterruptPending := nil.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   547
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   548
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   549
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   550
    ControlInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   551
        'DebugView [info]: breakpoint in debugger setup ignored [enterUncond.]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   552
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   553
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   554
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   555
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   556
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   557
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   558
    aDebugger isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   559
        'DebugView [error]: cannot open debugger' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   560
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   561
        mayProceed ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   562
            (Dialog confirm:'Error/Breakpoint cought.\\Press Continue or Abort.' withCRs
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   563
                   yesLabel:'Continue' noLabel:'Abort')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   564
            ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   565
                ^ nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   566
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   567
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   568
            self information:'Error cought.\\Press OK to abort the operation.' withCRs.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   569
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   570
        AbortOperationRequest raise.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   571
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   572
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   573
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   574
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   575
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   576
    aDebugger enter:aContext select:nil.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   577
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   578
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   579
    "
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   580
        nil halt
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   581
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   582
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   583
    "Modified: / 18.11.2001 / 00:29:23 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   584
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   585
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   586
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   587
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   588
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   589
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   590
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   591
    ^ self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   592
        enter:(thisContext sender)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   593
        withMessage:message
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   594
        mayProceed:true.
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   595
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   596
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   597
new
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   598
    "return a new DebugView.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   599
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   600
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   601
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   602
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   603
    |debugger currentScreen debuggerDevice|
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   604
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   605
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   606
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   607
    currentScreen notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   608
        (currentScreen suppressDebugger) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   609
            "/ no debuggers with that device - show an alertBox which aborts...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   610
            ^ nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   611
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   612
        (currentScreen mayOpenDebugger) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   613
            "/ no debugger on that device - but on the main screen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   614
            currentScreen := Screen default.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   615
        ].
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   616
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   617
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   618
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   619
     need a blocking debugger if no processes or
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
   620
     or if its a timing/interrupt process
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   621
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   622
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   623
    Processor activeProcessIsSystemProcess ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   624
        ((debugger := CachedExclusive) isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   625
        or:[debugger device ~~ currentScreen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   626
        or:[currentScreen isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   627
        or:[currentScreen isOpen not]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   628
            debugger := self newExclusive
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   629
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   630
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   631
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   632
        CachedDebugger notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   633
            (CachedDebugger device ~~ currentScreen
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   634
            or:[currentScreen isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   635
            or:[currentScreen isOpen not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   636
            or:[CachedDebugger class ~~ self]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   637
                CachedDebugger := nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   638
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   639
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   640
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   641
        (debugger := CachedDebugger) notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   642
            CachedDebugger := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   643
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   644
            debuggerDevice := currentScreen.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   645
            debuggerDevice isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   646
                "/ use the default display
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   647
                debuggerDevice := Screen default.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   648
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   649
            (debuggerDevice isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   650
            or:[debuggerDevice isOpen not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   651
            "/ or:[debuggerDevice mayOpenDebugger not]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   652
            ]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   653
                "/ no debugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   654
                ^ nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   655
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   656
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   657
            Screen currentScreenQuerySignal answer:debuggerDevice
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   658
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   659
                debugger := super new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   660
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   661
            debugger label:'Debugger'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   662
            debugger icon:self defaultIcon.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   663
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   664
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   665
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   666
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   667
    "Modified: 31.7.1997 / 21:20:27 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   668
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   669
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   670
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   671
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   672
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   673
    |debugger|
105
claus
parents: 101
diff changeset
   674
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   675
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   676
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   677
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   678
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   679
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   680
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   681
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   682
!
claus
parents: 101
diff changeset
   683
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   684
openOn:aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   685
    "start a  debugger on aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   686
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   687
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   688
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   689
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   690
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   691
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   692
    aProcess notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   693
        nm := aProcess name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   694
        nm notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   695
            nm := (nm contractTo:17) , '-' , aProcess id printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   696
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   697
            nm := aProcess id printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   698
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   699
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   700
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   701
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   702
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   703
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   704
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   705
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   706
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   707
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
   708
! !
claus
parents: 124
diff changeset
   709
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   710
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   711
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   712
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   713
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   714
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   715
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   716
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   717
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   718
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   719
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   720
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   721
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   722
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   723
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   724
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   725
    <resource: #menu>
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   726
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   727
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   728
     #(Menu
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   729
        (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   730
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   731
            label: 'File'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   732
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   733
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   734
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   735
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   736
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   737
                  enabled: canSendEmail
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   738
                  label: 'Report a Bug via eMail...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   739
                  itemValue: doOpenReportMailApp
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   740
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   741
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   742
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   743
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   744
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   745
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   746
                  label: 'Exit'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   747
                  itemValue: closeRequest
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   748
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   749
                  isVisible: isInspecting
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   750
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   751
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   752
                  label: 'Close Debugger and Abort'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   753
                  itemValue: closeRequest
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
                  isVisible: isNotInspecting
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   756
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   757
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   758
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   759
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   760
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   761
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   762
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   763
            label: 'View'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   764
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   765
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   766
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   767
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   768
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   769
                  enabled: canShowMore
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   770
                  label: 'Show More WalkBack'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   771
                  itemValue: showMore
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
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   774
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   775
                  label: 'Show Verbose WalkBack'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   776
                  itemValue: toggleVerboseWalkback
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   777
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   778
                  isVisible: showingDenseWalkback
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   779
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   780
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   781
                  label: 'Show Dense WalkBack'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   782
                  itemValue: toggleVerboseWalkback
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   783
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   784
                  isVisible: showingVerboseWalkback
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: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   788
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   789
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   790
                  label: 'Raise Debugger when Entering'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   791
                  itemValue: autoRaiseView:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   792
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   793
                  indication: autoRaiseView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   794
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   795
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   796
                  label: '-'
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   799
                  label: 'Settings...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   800
                  itemValue: openSettingsDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   801
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   802
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   803
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   804
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   805
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   806
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   807
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   808
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   809
            label: 'Process'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   810
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   811
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   812
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   813
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   814
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   815
                  label: 'Continue'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   816
                  itemValue: doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   817
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   818
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   819
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   820
                  label: 'Next (Line-Step)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   821
                  itemValue: doNext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   822
                  translateLabel: true
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: 'Step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   826
                  itemValue: doStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   827
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   828
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   829
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   830
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   831
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   832
               (MenuItem
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   833
                  label: 'Change Priority...'
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   834
                  itemValue: doChangeProcessPriority
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   835
                  translateLabel: true
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   836
                )
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   837
               (MenuItem
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   838
                  label: '-'
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   839
                )
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
   840
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   841
                  label: 'Abort'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   842
                  itemValue: doAbort
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   843
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   844
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   845
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   846
                  enabled: abortAllIsHandled
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   847
                  label: 'Abort All'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   848
                  itemValue: doAbortAll
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   849
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   850
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   851
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   852
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   853
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   854
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   855
                  label: 'Terminate'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   856
                  itemValue: doTerminate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   857
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   858
                )
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
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   861
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   862
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   863
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   864
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   865
            label: 'Context'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   866
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   867
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   868
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   869
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   870
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   871
                  enabled: canReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   872
                  label: 'Return'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   873
                  itemValue: doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   874
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   875
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   876
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   877
                  enabled: canRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   878
                  label: 'Restart'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   879
                  itemValue: doRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   880
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   881
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   882
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   883
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   884
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   885
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   886
                  enabled: hasContextSelected
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   887
                  label: 'Inspect'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   888
                  itemValue: inspectContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   889
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   890
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   891
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   892
                  label: 'Copy WalkBack Text'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   893
                  itemValue: copyWalkbackText
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   894
                  translateLabel: true
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
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   897
                  label: 'Bookmark Method in SystemBrowser'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   898
                  itemValue: addBrowserBookmark
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   899
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   900
                )
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   901
               (MenuItem
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   902
                  label: '-'
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   903
                )
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   904
               (MenuItem
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   905
                  label: 'Remember Callchain & Highlight on Next Entry'
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   906
                  itemValue: rememberCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   907
                  translateLabel: true
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   908
                )
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   909
               (MenuItem
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   910
                  label: 'Clear Remembered Callchain'
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   911
                  itemValue: clearRememberedCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   912
                  translateLabel: true
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
   913
                )
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   914
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   915
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   916
              nil
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
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   919
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   920
            label: 'Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   921
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   922
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   923
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   924
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   925
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   926
                  enabled: canBrowseImplementingClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   927
                  label: 'Browse Implementing Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   928
                  itemValue: browseImplementingClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   929
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   930
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   931
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   932
                  enabled: canBrowseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   933
                  label: 'Browse Receivers Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   934
                  itemValue: browseReceiversClass
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
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   937
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   938
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   939
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   940
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   941
                  enabled: canBrowseClassHierarchy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   942
                  label: 'Browse Receivers Class Hierarchy'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   943
                  itemValue: browseClassHierarchy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   944
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   945
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   946
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   947
                  enabled: canBrowseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   948
                  label: 'Browse Receivers Full Protocol'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   949
                  itemValue: browseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   950
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   951
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   952
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   953
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   954
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   955
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   956
                  enabled: canBrowseProcessesApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   957
                  label: 'Browse Application Class'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   958
                  itemValue: browseProcessesApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   959
                  translateLabel: true
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
               )
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
              nil
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
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   966
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   967
            label: 'Selector'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   968
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   969
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   970
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   971
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   972
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   973
                  label: 'Browse Implementors...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   974
                  itemValue: browseImplementorsOf
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
                  label: 'Browse Senders...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   979
                  itemValue: browseSendersOf
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   980
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   981
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   982
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   983
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   984
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   985
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   986
                  enabled: canDefineMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   987
                  label: 'Define Missing Method'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   988
                  itemValue: doDefineMethod
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   989
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   990
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   991
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   992
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   993
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   994
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   995
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   996
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   997
            label: 'Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
   998
            translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
   999
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1000
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1001
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1002
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1003
                  enabled: canRemoveBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1004
                  label: 'Remove Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1005
                  itemValue: removeBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1006
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1007
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1008
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1009
                  label: 'Remove all Breakpoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1010
                  itemValue: removeAllBreakpoints
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1011
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1012
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1013
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1014
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1015
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1016
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1017
                  enabled: canAddBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1018
                  label: 'Add Breakpoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1019
                  itemValue: addBreakpoint
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1020
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1021
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1022
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1023
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1024
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1025
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1026
                  label: 'Ignore this Halt/BreakPoint'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1027
                  translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1028
                  submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1029
                 (Menu
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
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1033
                        label: 'For Some Time...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1034
                        itemValue: openIgnoreHaltUntilTimeElapsedDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1035
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1036
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1037
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1038
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1039
                        label: 'For the Next N Times...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1040
                        itemValue: openIgnoreHaltNTimesDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1041
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1042
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1043
                     (MenuItem
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1044
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1045
                        label: 'Until Shift-Key is Pressed'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1046
                        itemValue: ignoreHaltUntilShiftKeyIsPressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1047
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1048
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1049
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1050
                        enabled: isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1051
                        label: 'Forever (Until Ignoring is Stopped)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1052
                        itemValue: ignoreHaltForever
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1053
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1054
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1055
                     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1056
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1057
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1058
                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1059
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1060
               (MenuItem
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1061
                  enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1062
                  label: 'Ignore all BreakPoints with this Parameter'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1063
                  translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1064
                  submenu: 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1065
                 (Menu
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1066
                    (
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1067
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1068
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1069
                        label: 'For Some Time...'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1070
                        itemValue: openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1071
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1072
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1073
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1074
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1075
                        label: 'For the Next N Times...'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1076
                        itemValue: openIgnoreBreakpointsWithThisParameterNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1077
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1078
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1079
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1080
                        enabled: isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1081
                        label: 'Until Shift-Key is Pressed'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1082
                        itemValue: ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1083
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1084
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1085
                     (MenuItem
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1086
                        enabled: isStoppedAtBreakPointWithParameter
11370
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  1087
                        label: 'Forever (Reenable in BreakPoint-Browser)'
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1088
                        itemValue: ignoreBreakpointsWithThisParameterForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1089
                        translateLabel: true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1090
                      )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1091
                     )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1092
                    nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1093
                    nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1094
                  )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1095
                )
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1096
               (MenuItem
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1097
                  label: 'Ignore all Halts/BreakPoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1098
                  translateLabel: true
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1099
                  submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1100
                 (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1101
                    (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1102
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1103
                        label: 'For Some Time...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1104
                        itemValue: openIgnoreAllHaltsUntilTimeElapsedDialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1105
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1106
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1107
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1108
                        label: 'Until Shift-Key is Pressed'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1109
                        itemValue: ignoreAllHaltsUntilShiftKeyIsPressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1110
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1111
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1112
                     (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1113
                        label: 'Forever (Until Ignoring is Stopped)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1114
                        itemValue: ignoreAllHaltsForever
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1115
                        translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1116
                      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1117
                     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1118
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1119
                    nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1120
                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1121
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1122
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1123
                  enabled: hasHaltsToIgnore
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1124
                  label: 'Stop Ignoring'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1125
                  itemValue: stopIgnoringHalts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1126
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1127
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1128
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1129
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1130
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1131
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1132
                  label: 'Manage Breakpoints'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1133
                  itemValue: openBreakPointBrowser
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1134
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1135
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1136
               (MenuItem
11443
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  1137
                  label: 'Allow Halt in Debugger'
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1138
                  itemValue: allowBreakPointsInDebugger:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1139
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1140
                  indication: allowBreakPointsInDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1141
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1142
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1143
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1144
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1145
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1146
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1147
         (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1148
            label: 'Help'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1149
            translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1150
            startGroup: right
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  1151
            submenu: 
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1152
           (Menu
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1153
              (
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1154
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1155
                  label: 'Debuggers Documentation'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1156
                  itemValue: openHTMLDocument:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1157
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1158
                  argument: 'tools/debugger/TOP.html'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1159
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1160
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1161
                  label: '-'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1162
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1163
               (MenuItem
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1164
                  label: 'About DebugView...'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1165
                  itemValue: openAboutThisApplication
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1166
                  translateLabel: true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1167
                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1168
               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1169
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1170
              nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1171
            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1172
          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1173
         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1174
        nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1175
        nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1176
      )
11443
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  1177
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  1178
    "Modified: / 19-03-2012 / 16:37:36 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1179
! !
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1180
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1181
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1182
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
  1183
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1184
    "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
  1185
     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
  1186
     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
  1187
     actually occured.
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1188
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1189
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1190
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1191
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1192
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
  1193
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1194
    idx := 1.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1195
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1196
        someContexts at:idx put:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1197
        con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1198
        idx := idx + 1.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1199
    ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1200
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1201
    ^ someContexts at:idx.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1202
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1203
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1204
interestingContextIndexIn:aContextArray
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1205
    "return an interesting contexts offset, or nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1206
     This is the context initially shown in the walkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1207
     We move up the calling chain, skipping all intermediate Signal
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1208
     and Exception contexts, to present the context in which the error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1209
     actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1210
     Just for your convenience :-)"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1211
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1212
    |con found offset sel prev ex rcvr nMax idx|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1213
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  1214
"/ Transcript showCR:aContextArray.
7648
acfbc051149f *** empty log message ***
ca
parents: 7647
diff changeset
  1215
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1216
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1217
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1218
    con := aContextArray at:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1219
    con isBlockContext ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1220
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1221
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1222
    "/ find the exception
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1223
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1224
    1 to:5 do:[:i |
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1225
        con := aContextArray at:i ifAbsent:nil.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1226
        con notNil ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1227
            sel := con selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1228
            (sel startsWith:'raise') ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1229
                rcvr := con receiver.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1230
                (rcvr isLazyValue not and:[rcvr isException]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1231
                    ex := rcvr.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1232
                    offset := i.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1233
                    found := con
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1234
                ] ifFalse:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1235
                    (rcvr isLazyValue not and:[rcvr isExceptionCreator]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1236
                        offset := i.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1237
                        found := con
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1238
                    ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1239
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1240
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1241
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1242
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1243
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1244
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1245
     if this is a noHandler exception, skip forward
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1246
     to the erronous context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1247
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1248
    ex notNil ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1249
        ex signal == Signal noHandlerSignal ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1250
            found := ex suspendedContext
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1251
        ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1252
    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1253
"/ Transcript show:'1 '; showCR:found.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1254
    found isNil ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1255
        "/ this is a kludge, but convenient.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1256
        "/ show the place where the error (divisionByZero...) happend,
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1257
        "/ not where the signal was raised.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1258
        con := (aContextArray at:1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1259
        sel := con methodHome selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1260
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1261
        "/ typically a DivisionByZero - show caller of division
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1262
        (sel == #//
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1263
        or:[sel == #/
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1264
        or:[sel == #\\]]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1265
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1266
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1267
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1268
        "/ 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
  1269
        (sel == #doesNotUnderstand:) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1270
            idx := 3.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1271
            nMax > 2 ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1272
                sel := (aContextArray at:idx) selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1273
                sel == #doesNotUnderstand: ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1274
                    idx := 4
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1275
                ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1276
                nMax > idx ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1277
                    sel := (aContextArray at:idx) selector ? ''.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1278
                    "/ 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
  1279
                    ((sel == #perform:)
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1280
                    or:[sel startsWith:'perform:with']) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1281
                        idx := idx + 1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1282
                    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1283
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1284
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1285
            ^ idx min:nMax
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
        "/ show the bad method; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1289
        (sel == #noByteCode) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1290
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1291
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1292
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1293
"/        "/ 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
  1294
"/        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1295
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1296
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1297
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1298
"/        "/ 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
  1299
"/        (sel == #shouldImplement) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1300
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1301
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1302
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1303
"/        "/ 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
  1304
"/        ((sel == #error:mayProceed:)
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1305
"/        or:[ sel == #signalFailure:resumable:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1306
"/            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1307
"/                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1308
"/                sel == #mustBeBoolean ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1309
"/                    ^ 3
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1310
"/                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1311
"/            ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1312
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1313
"/        ].
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
  1314
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1315
        "/ show the place of signalInterrupt-call; not where the Signal was raised...
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1316
        (sel == #signalInterrupt:) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1317
            ^ 2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1318
        ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
  1319
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1320
"/        "/ 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
  1321
"/        ((sel == #error) or:[sel == #error:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1322
"/            con method mclass == Object ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1323
"/                ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1324
"/            ]
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1325
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1326
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1327
"/        "/ 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
  1328
"/        (sel == #subclassResponsibility) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1329
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
  1330
"/        ].
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  1331
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1332
        "/ 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
  1333
        ( #(#notIndexed
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1334
            #indexNotIntegerOrOutOfBounds:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1335
            #subscriptBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1336
            #elementBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1337
            "/ #subclassResponsibility
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1338
        ) includes:sel) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1339
            idx := 2.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1340
            [ idx <= 3
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1341
                and:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1342
                    sel := (aContextArray at:idx) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1343
                    #(#notIndexed
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1344
                      #indexNotIntegerOrOutOfBounds:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1345
                      #subscriptBoundsError:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1346
                      #elementBoundsError: ) includes:sel
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1347
                ]
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1348
            ] whileTrue:[ idx := idx + 1 ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1349
            sel := (aContextArray at:idx) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1350
            (nMax > idx and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1351
            ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1352
                sel := (aContextArray at:idx+1) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1353
                (nMax > (idx+1) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1354
                ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1355
                    sel := (aContextArray at:idx+2) selector.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1356
                    (nMax > (idx+2) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1357
                    ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1358
                        ^ idx+3
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1359
                    ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1360
                    ^ idx+2
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1361
                ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1362
                ^ idx+1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1363
            ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1364
            ^ idx
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1365
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1366
        offset := 1.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1367
    ].
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1368
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1369
    "/ the above is all too hard-coded;
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1370
    "/ 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
  1371
    "/ as more methods get flagged, remove code from above.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1372
    con := aContextArray at:offset ifAbsent:nil.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1373
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1374
    [
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1375
        con notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1376
        and:[ con methodHome notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1377
        and:[ con methodHome method notNil
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1378
        and:[ con methodHome method shouldBeSkippedInDebuggersWalkBack ]]]
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1379
    ] whileTrue:[
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1380
"/ Transcript showCR:con methodHome method.
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1381
        offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1382
        con := aContextArray at:offset ifAbsent:nil.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  1383
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1384
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1385
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1386
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1387
     Exception contexts
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1388
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1389
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1390
    rcvr := con receiver.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1391
    [
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1392
        rcvr isLazyValue not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1393
    ] whileTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1394
        prev := con.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1395
        nMax > offset ifFalse:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1396
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1397
        offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1398
        con := aContextArray at:offset.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1399
        rcvr := con receiver.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1400
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1401
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1402
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1403
     now, we are one above the raising context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1404
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1405
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1406
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1407
     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
  1408
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1409
    ( #( halt halt:
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1410
         error error:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1411
         doesNotUnderstand:
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1412
         subclassResponsibility
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1413
         primitiveFailed) includes:con selector)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1414
    ifTrue:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1415
        con selector == #doesNotUnderstand: ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1416
            "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1417
             one more up, to get to the originating context
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1418
            "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1419
            con := aContextArray at:(offset + 1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1420
            con isNil ifTrue:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1421
            offset := offset + 1.
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1422
        ].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1423
        con := aContextArray at:(offset + 1).
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1424
        con isNil ifTrue:[^ offset].
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1425
        offset := offset + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1426
    ] ifFalse:[
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1427
        "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1428
         ok, got the raise - if its a BreakPoint, look for the sender
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1429
        "
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1430
        (prev notNil and:[prev receiver == BreakPointInterrupt]) ifTrue:[
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1431
            offset := offset + 1
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1432
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1433
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1434
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1435
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1436
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  1437
    "Created: / 17-11-2001 / 20:37:49 / cg"
10289
cb1f8bda978e changed: #interestingContextIndexIn:
Claus Gittinger <cg@exept.de>
parents: 10205
diff changeset
  1438
    "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
  1439
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1440
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1441
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1442
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1443
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1444
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1445
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1446
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1447
    m notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1448
        self updateMenuItems.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1449
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1450
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1451
            abortButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1452
            m enable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1453
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1454
            abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1455
            m disable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1456
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1457
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1458
            terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1459
            m disable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1460
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1461
            terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1462
            m enable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1463
        ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1464
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1465
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1466
    mayProceed == false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1467
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1468
        m notNil ifTrue:[m disable:#doContinue].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1469
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1470
        continueButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1471
        m notNil ifTrue:[m enable:#doContinue]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1472
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1473
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1474
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1475
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1476
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  1477
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1478
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1479
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1480
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1481
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1482
9076
Claus Gittinger <cg@exept.de>
parents: 9034
diff changeset
  1483
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1484
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1485
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1486
        '==> enter: (' print. aContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1487
        ') select: ' print. initialSelectionOrNil printCR.
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1488
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1489
    thisContext isRecursive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1490
        "/ care for the special case, were the Debugger was autoloaded.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1491
        "/ in this case, thisContext IS recursive, but thats no error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1492
        "/ condition.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1493
        foundNoByteCodeContext := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1494
        foundExitContext := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1495
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1496
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1497
        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1498
         foundNoByteCodeContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1499
         and:[ foundExitContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1500
         and:[c notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1501
         and:[c selector ~~ #enter:withMessage:mayProceed:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1502
        ]]]]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1503
        whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1504
            c selector == #exit_unwindThenDo: ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1505
                foundExitContext := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1506
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1507
            c selector == #noByteCode ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1508
                foundNoByteCodeContext := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1509
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1510
            c := c findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1511
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1512
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1513
        (foundNoByteCodeContext not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1514
        and:[ foundExitContext not]) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1515
            ('DebugView [warning]: reentered') errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1516
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1517
            ^ MiniDebugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1518
                enter:aContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1519
                withMessage:'DebugView [error]: recursive error (in debugger)'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1520
                mayProceed:mayProceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1521
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1522
        foundExitContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1523
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1524
            ^ self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1525
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1526
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1527
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1528
    "/'entering: ' print. aContext printCR.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1529
    "/'initial: ' print. initialSelectionOrNil printCR.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1530
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1531
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  1532
    self class isHaltToBeIgnored ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1533
        ^ self.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1534
    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1535
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1536
    iAmNew := drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1537
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1538
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1539
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1540
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1541
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1542
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1543
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1544
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1545
    stepHow := nil.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1546
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1547
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1548
    "/ if debugger is entered while a box has grabbed the
9076
Claus Gittinger <cg@exept.de>
parents: 9034
diff changeset
  1549
    "/ 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
  1550
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1551
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1552
    "/ 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
  1553
    "/    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
  1554
    "/    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
  1555
    Screen allScreens do:[:aScreen |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1556
        aScreen ungrabPointer.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1557
        aScreen ungrabKeyboard.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1558
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1559
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1560
    ("inspectedProcess suspendedContext isNil
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  1561
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1562
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1563
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1564
        terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1565
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1566
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1567
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1568
    iAmNew ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1569
        "/ not the first time - disable buttons & menus
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1570
        "/ from the previous life
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1571
        self turnOffAllButtons.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1572
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1573
        m := contextView middleButtonMenu.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1574
        m notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1575
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1576
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1577
        verboseBacktrace
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1578
            ifTrue:[self showVerboseWalkback]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1579
            ifFalse:[self showDenseWalkback].
132
claus
parents: 127
diff changeset
  1580
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1581
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  1582
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1583
    windowGroup isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1584
        self windowGroup: WindowGroup new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1585
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1586
    ].
132
claus
parents: 127
diff changeset
  1587
    exclusive ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1588
        "/ create a (modal) windowGroup for myself
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1589
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1590
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1591
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1592
        "/ create a windowGroup with a synchronous sensor for me
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1593
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1594
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1595
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1596
    windowGroup setProcess:Processor activeProcess.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1597
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1598
     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
  1599
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1600
    self setContext:aContext releaseInspectors:(exitAction ~~ #step).
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1601
    "/'after setContext; first is ' print.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1602
    "/(contextArray at:1 ifAbsent:nil) printCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1603
    self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1604
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1605
    self updateButtonsAndMenuItemsForContext:aContext.
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1606
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1607
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1608
     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
  1609
     Otherwise, its probably better to do a map, which shows the
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1610
     view at the previous position, without a need for the user to set the
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1611
     position again
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1612
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1613
    iAmNew ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1614
        self remap.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1615
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1616
        self realize.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1617
    ].
8193
9a4febdd8202 Raise debugger to the very top when entering
Stefan Vogel <sv@exept.de>
parents: 8181
diff changeset
  1618
    self setForegroundWindow.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1619
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1620
    exclusive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1621
        self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1622
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
  1623
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1624
This is a modal debugger - all event processing is stopped..
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  1625
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
  1626
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
  1627
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1628
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
  1629
    ].
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1630
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1631
    self autoRaiseView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1632
        "/ self raise.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1633
        self raiseDeiconified.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1634
        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
  1635
    ].
1486
6ae442626f20 wait until visible before starting to draw
Claus Gittinger <cg@exept.de>
parents: 1484
diff changeset
  1636
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1637
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1638
    exitAction := nil.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1639
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1640
    "/ 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
  1641
    "/ 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
  1642
    "/ closedown of the debugger.
3701
ef73aac8e8d5 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 3694
diff changeset
  1643
    [self controlLoop] ifCurtailed:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1644
        windowGroup notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1645
            windowGroup setProcess:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1646
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1647
        self destroy
132
claus
parents: 127
diff changeset
  1648
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1649
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1650
    "/ here after my own control loop is finished.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1651
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1652
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1653
    "/ 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
  1654
    "/ 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
  1655
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1656
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1657
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1658
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1659
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1660
    ObjectMemory stepInterruptHandler == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1661
        ObjectMemory stepInterruptHandler:nil.
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1662
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1663
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1664
    (exitAction ~~ #step) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1665
        "/ not stepping - close window
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1666
        lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1667
        lastSelectionInContextInspector := contextInspector selectedKeyName.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1668
        receiverInspector release.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1669
        contextInspector release.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1670
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1671
        self unmap.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1672
        device flush.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1673
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1674
        (exitAction == #abort) ifTrue:[ self exit_abort. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1675
        (exitAction == #abortAll) ifTrue:[ self exit_abortAll. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1676
        (exitAction == #return) ifTrue:[ self exit_return. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1677
        (exitAction == #restart) ifTrue:[ self exit_restart. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1678
        (exitAction == #quickTerminate) ifTrue:[ self exit_quickTerminate. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1679
        (exitAction == #terminate) ifTrue:[ self exit_terminate. "does not return" ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1680
        exitAction isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1681
            self exit_unwindThenDo:exitAction.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1682
            "does not return"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1683
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1684
        "not reached"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1685
        ^ self
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1686
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1687
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1688
    "/ stepping - window stays open
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1689
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1690
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  1691
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1692
    grabber notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1693
        device grabPointerInView:grabber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1694
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1695
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1696
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1697
    (exitAction == #step) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1698
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1699
         schedule another stepInterrupt
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1700
         - must enter myself into the collection of open debuggers,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1701
           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
  1702
           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
  1703
           come up (instead of a new one)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1704
         - must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1705
           look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1706
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1707
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1708
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1709
        "/ also must care for stepping into a return
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1710
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1711
        steppedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1712
            Processor activeProcess forceInterruptOnReturnOf:steppedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1713
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1714
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1715
        OpenDebuggers isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1716
            OpenDebuggers := WeakIdentitySet new.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1717
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1718
        OpenDebuggers add:self.
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
        self label:'single stepping - please wait ...'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1721
        stepping := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1722
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1723
        ObjectMemory stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1724
        Processor activeProcess stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1725
        ObjectMemory flushCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1726
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1727
        Context singleStepInterruptRequest isHandled ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1728
            Context singleStepInterruptRequest
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1729
                raiseWith:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1730
                    (("bigStep" steppedContextLineno notNil)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1731
                        ifTrue:[#next]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1732
                        ifFalse:[#step])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1733
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1734
            "/ see if we came here through an interrupt-action
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1735
            "/ (i.e. aProcess interruptWith:...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1736
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1737
            enteredByInterrupt := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1738
            con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1739
            [enteredByInterrupt not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1740
             and:[con notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1741
             and:[con ~~ aContext]]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1742
                ((sel := con selector) == #timerInterrupt
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1743
                or:[sel == #ioInterrupt]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1744
                    enteredByInterrupt := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1745
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1746
                    con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1747
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1748
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1749
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1750
            ObjectMemory flushInlineCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1751
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1752
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1753
                enteredByInterrupt printCR.
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
            enteredByInterrupt ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1756
                "/ dont want to step through all intermediate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1757
                "/ (scheduler-) contexts; place a return-trap on the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1758
                "/ one right below the interesting one
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1759
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1760
"/                'special unwind return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1761
                con unwindThenDo:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1762
                                  Processor activeProcess stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1763
                                  ObjectMemory stepInterruptHandler:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1764
                                  InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1765
                                  StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1766
                                  InterruptPending := 1].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1767
            ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1768
"/                'normal step return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1769
                skipLineNr ~~ #return ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1770
                    StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1771
                    InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1772
                ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1773
"/                    'step for return' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1774
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1775
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1776
            InStepInterrupt := nil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1777
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1778
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1779
        OpenDebuggers notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1780
            OpenDebuggers remove:self ifAbsent:[].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1781
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1782
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1783
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1784
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1785
    "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
  1786
    "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
  1787
    "Modified: / 13-10-1998 / 19:56:59 / ps"
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  1788
    "Modified (comment): / 06-07-2011 / 12:29:28 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1789
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1790
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1791
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1792
    "/ 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
  1793
    "/ 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
  1794
    "/ 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
  1795
    "/ 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
  1796
    "/ 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
  1797
    "/ done in the #enter:select method.
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1798
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1799
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1800
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1801
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1802
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1803
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1804
    "/ 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
  1805
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1806
    "/ 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
  1807
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1808
    "/ 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
  1809
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1810
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1811
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1812
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1813
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1814
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1815
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1816
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1817
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1818
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1819
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1820
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1821
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1822
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1823
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1824
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1825
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1826
    selectedContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1827
        con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1828
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1829
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1830
         have to catch errors occuring in unwind-blocks
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1831
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1832
        Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1833
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1834
            ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1835
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1836
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1837
            con unwindAndRestart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1838
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1839
        'DebugView [warning]: cannot restart selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1840
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1841
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1842
    "Created: / 16.11.2001 / 17:23:17 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1843
    "Modified: / 17.11.2001 / 23:37:09 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1844
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1845
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1846
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1847
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1848
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1849
    selectedContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1850
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1851
         if there is a selection in the codeView,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1852
         evaluate it and use the result as return value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1853
        "
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1854
"/ 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
  1855
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1856
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1857
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1858
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1859
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1860
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1861
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1862
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1863
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1864
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1865
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1866
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1867
"/                        retVal := codeView doItAction value:s.
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
"/                ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1870
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1871
        con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1872
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1873
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1874
         have to catch errors occuring in unwind-blocks
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
        Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1877
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1878
            ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1879
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1880
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1881
            con unwind:retVal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1882
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1883
        'DebugView [warning]: cannot return from selected context' errorPrintCR
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1884
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1885
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1886
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1887
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1888
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1889
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1890
exit_terminate
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
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1893
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1894
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1895
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1896
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1897
        ex description infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1898
        ex proceed
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1899
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1900
        self cacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1901
        Processor activeProcess terminate.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1902
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1903
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1904
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1905
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1906
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1907
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1908
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1909
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1910
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1911
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1912
    "/ 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
  1913
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1914
    "/ 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
  1915
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1916
    "/ 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
  1917
    "/ done in the #enter:select method.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1918
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1919
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1920
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1921
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1922
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1923
    self cacheMyself.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1924
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1925
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1926
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1927
        ex description infoPrintCR.
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
        ex proceed
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1930
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1931
        "/ find the enter:select context.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1932
        con := thisContext sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1933
        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1934
            (con selector == #enter:select:)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1935
            and:[con receiver == self]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1936
        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1937
        whileFalse:[ con := con sender ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1938
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1939
        "/ 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
  1940
        con sender receiver == self class ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1941
            con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1942
            con sender receiver == self class ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1943
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1944
                con isBlockContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1945
                    con := con methodHome.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1946
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1947
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1948
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1949
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1950
        con unwindThenDo:aBlock.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1951
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1952
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1953
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1954
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1955
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1956
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1957
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1958
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1959
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1960
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1961
    initialSelectionOrNil notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1962
        ^ initialSelectionOrNil
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1963
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1964
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1965
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1966
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1967
     - 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
  1968
     - 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
  1969
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1970
     - 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
  1971
       in the context where the raise actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1972
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1973
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1974
    con2 := (contextArray at:2 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1975
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1976
    exitAction == #step ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1977
        selection := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1978
        steppedContext notNil ifTrue:[
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
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1981
             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
  1982
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1983
            con1 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1984
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1985
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1986
                con2 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1987
                    selection := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1988
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1989
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1990
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1991
             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
  1992
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1993
            ((h := con1 home) notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1994
             and:[h == steppedContext]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1995
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1996
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1997
                (con2 notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1998
                and:[(h := con2 home) notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  1999
                and:[h == steppedContext]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2000
                    selection := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2001
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2002
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2003
            h := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2004
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2005
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2006
        steppedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2007
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2008
             preselect a more interesting context, (where halt/raise was ...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2009
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2010
            "/ selection := self class interestingContextIndexFrom:aContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2011
            selection := self class interestingContextIndexIn:contextArray.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2012
            selection := selection min:(contextArray size).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2013
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2014
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2015
             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
  2016
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2017
            con1 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2018
                selection := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2019
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2020
                con2 == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2021
                    selection := 2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2022
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2023
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2024
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2025
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2026
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2027
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2028
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2029
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2030
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2031
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2032
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2033
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2034
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2035
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2036
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2037
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2038
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  2039
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2040
openOn:aProcess
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2041
    "enter the debugger on a process -
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2042
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2043
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2044
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2045
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2046
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2047
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2048
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2049
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  2050
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2051
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2052
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2053
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2054
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2055
    inspectedProcess := aProcess.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2056
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2057
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2058
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2059
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2060
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2061
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2062
    continueButton label:(resources string:'Continue').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2063
    w := continueButton preferredWidth.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2064
    continueButton label:(resources string:'Stop').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2065
    w := w max:(continueButton preferredWidth).
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2066
    continueButton preferredExtent:(w @ continueButton preferredHeight).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2067
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2068
    aProcess state == #run ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2069
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2070
            continueButton foregroundColor:Color red darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2071
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2072
        continueButton label:(resources string:'Stop').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2073
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2074
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2075
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2076
            continueButton foregroundColor:Color green darkened darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2077
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2078
        continueButton label:(resources string:'Continue').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2079
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2080
    ].
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2081
    continueButton preferredExtent:(w @ continueButton preferredHeight).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2082
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2083
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2084
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2085
92
claus
parents: 90
diff changeset
  2086
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2087
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  2088
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2089
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2090
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2091
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2092
    updateButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2093
                        label:(resources string:'Update')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2094
                        action:[self updateContext]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2095
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2096
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2097
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2098
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2099
    monitorToggle releaseAction:[self autoUpdateOff].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2100
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2101
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2102
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2103
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2104
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2105
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2106
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2107
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2108
    stepButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2109
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2110
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2111
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2112
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2113
    aProcess isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2114
        terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2115
        abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2116
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2117
        returnButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2118
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2119
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2120
        (aProcess suspendedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2121
        or:[aProcess isSystemProcess]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2122
            terminateButton disable.
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2125
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2126
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2127
        catchBlock := [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2128
            catchBlock := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2129
            contextArray := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2130
            selectedContext := actualContext := firstContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2131
            steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2132
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2133
            (exitAction == #terminate) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2134
                aProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2135
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2136
            (exitAction == #quickTerminate) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2137
                aProcess terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2138
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2139
            super destroy
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2140
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2141
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2142
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  2143
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  2144
    "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
  2145
    "Modified: 17.4.1997 / 13:01:57 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2146
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2147
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2148
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2149
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2150
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2151
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2152
    selection notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2153
        self showSelection:selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2154
        contextView setSelection:selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2155
        selection > 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2156
            contextView scrollToLine:(selection - 1)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2157
        ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2158
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2159
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2160
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2161
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2162
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2163
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2164
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2165
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2166
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2167
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2168
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2169
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2170
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2171
    stepButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2172
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2173
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2174
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2175
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2176
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2177
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2178
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2179
flyByHelpDependsOnPositionIn:aView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2180
    "subclasses where the help-text depends upon the pointer position might
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2181
     want to redefine this"
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2182
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2183
    ^ aView == codeView
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2184
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2185
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2186
flyByHelpTextFor:aComponent
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2187
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2188
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2189
    aComponent == abortButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2190
        s := 'Abort (unwind to eventLoop)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2191
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2192
    aComponent == terminateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2193
        s := 'Terminate process (close view)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2194
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2195
    aComponent == continueButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2196
        continueButton label = (resources string:'Stop') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2197
            s := 'Stop'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2198
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2199
            s := 'Continue execution'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2200
        ]
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2201
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2202
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2203
        s := 'Step to next send (don''t enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2204
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2205
    aComponent == nextButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2206
        s := 'Step to next line (don''t enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2207
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2208
    aComponent == nextOverButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2209
        s := 'Step over to cursor-line'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2210
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2211
    aComponent == nextOutButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2212
        s := 'Step out to caller'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2213
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2214
    aComponent == sendButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2215
        s := 'Send next message (enter into called methods)'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2216
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2217
    aComponent == returnButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2218
        s := 'Return from selected method'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2219
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2220
    aComponent == restartButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2221
        s := 'Restart selected method'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2222
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2223
    aComponent == monitorToggle ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2224
        s := 'Toggle monitoring'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2225
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2226
    aComponent == updateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2227
        s := 'Update'
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2228
    ].
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  2229
    aComponent == reportButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2230
        s := 'Send a defect report via eMail'
8656
6c92a022f929 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8636
diff changeset
  2231
    ].
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2232
    s notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2233
        ^ resources string:s
3510
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
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2236
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  2237
    "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
  2238
    "Modified: / 18-06-2010 / 11:34:51 / cg"
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2239
!
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2240
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2241
flyByHelpTextFor:aComponent at:aPointOrNil
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2242
    |s vline line col pos interval|
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2243
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2244
    aComponent == codeView ifFalse:[^ nil].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2245
    aPointOrNil isNil ifTrue:[^ nil].
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2246
    self sensor motionEventPending ifTrue:[^ nil].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2247
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2248
    vline := codeView visibleLineOfY:aPointOrNil y.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2249
    col := codeView colOfX:aPointOrNil x inVisibleLine:vline.
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  2250
    line := codeView visibleLineToAbsoluteLine:vline.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2251
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2252
    pos := codeView characterPositionOfLine:line col:col.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2253
    interval := pos to:pos.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2254
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2255
    self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2256
        withNodeValueAtInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2257
        do:[:value :description |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2258
            |valueClassOrSizeString valueString|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2259
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2260
            valueClassOrSizeString := valueString := ''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2261
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2262
            "/ 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
  2263
            value isString ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2264
                value isText ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2265
                    valueString := '"',(value contractTo:80),'"'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2266
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2267
                    valueString := value storeString contractTo:80.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2268
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2269
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2270
                (value isBoolean
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2271
                or:[ value isInteger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2272
                or:[ value isSymbol ]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2273
                    valueString := value printString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2274
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2275
                    valueClassOrSizeString := ' (',value class name,')'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2276
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2277
                    (value isArray
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2278
                    or:[ value isOrderedCollection ]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2279
                        valueClassOrSizeString := ' (size=',value size printString,')'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2280
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2281
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2282
                    Error handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2283
                        valueString := '??? (',ex description,')'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2284
                    ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2285
                        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2286
                            valueString := value printString contractTo:80.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2287
                        ] valueWithWatchDog:[ valueString := value classNameWithArticle ] afterMilliseconds:30.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2288
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2289
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2290
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2291
            description isEmptyOrNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2292
                s := valueString , valueClassOrSizeString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2293
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2294
                s := description , ': ', valueString, valueClassOrSizeString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2295
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2296
        ].
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  2297
    "/ Transcript showCR:s.
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  2298
    ^ s
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2299
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  2300
    "Modified: / 27-04-2010 / 17:51:53 / cg"
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2301
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  2302
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2303
helpTextFor:aComponent
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2304
    |s|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2305
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2306
    aComponent == abortButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2307
        s := 'HELP_ABORT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2308
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2309
    aComponent == terminateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2310
        s := 'HELP_TERMINATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2311
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2312
    aComponent == continueButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2313
        continueButton label = (resources string:'Stop') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2314
            s := 'HELP_STOP'
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
            s := 'HELP_CONTINUE'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2317
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2318
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2319
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2320
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2321
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2322
    aComponent == nextButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2323
        s := 'HELP_NEXT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2324
    ].
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2325
    aComponent == nextOverButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2326
        s := 'HELP_NEXTOVER'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2327
    ].
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2328
    aComponent == nextOutButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2329
        s := 'HELP_NEXTOUT'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2330
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2331
    aComponent == stepButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2332
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2333
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2334
    aComponent == sendButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2335
        s := 'HELP_SEND'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2336
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2337
    aComponent == returnButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2338
        s := 'HELP_RETURN'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2339
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2340
    aComponent == restartButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2341
        s := 'HELP_RESTART'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2342
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2343
    aComponent == contextView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2344
        s := 'HELP_WALKBACK'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2345
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2346
    aComponent == codeView ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2347
        s := 'HELP_CODEVIEW'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2348
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2349
    aComponent == monitorToggle ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2350
        s := 'HELP_MONITOR'
266
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 == updateButton ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2353
        s := 'HELP_UPDATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2354
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2355
"/    aComponent == stopButton ifTrue:[
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2356
"/        s := 'HELP_STOP'
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  2357
"/    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  2358
    (aComponent isComponentOf:receiverInspector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2359
        s := 'HELP_REC_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2360
    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  2361
    (aComponent isComponentOf:contextInspector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2362
        s := 'HELP_CON_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2363
    ].
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
    s notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2366
        ^ resources string:s
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
    ^ nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2369
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2370
    "Modified: 29.8.1995 / 23:38:54 / claus"
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  2371
    "Modified: 4.3.1997 / 01:54:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2372
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2373
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2374
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2375
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2376
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2377
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2378
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2379
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2380
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2381
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2382
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2383
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2384
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2385
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2386
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  2387
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2388
        (self confirm:('Code modified - exit anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2389
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2390
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2391
        ]
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2392
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2393
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  2394
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  2395
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  2396
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2397
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2398
        "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
  2399
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2400
        windowGroup notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2401
            windowGroup setProcess:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2402
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2403
        self uncacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2404
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2405
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2406
        "/ catch invalid return;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2407
        "/ this happens, when my process has somehow died (quickterminate)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2408
        "/ 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
  2409
        "/ #destroy-window function.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2410
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2411
        Context cannotReturnSignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2412
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2413
            self uncacheMyself.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2414
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2415
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2416
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2417
            AbortOperationRequest isHandled ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2418
                self doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2419
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2420
                self doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2421
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2422
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2423
        "/ We don't reach this point normally
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2424
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2425
        Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2426
        self uncacheMyself.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2427
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2428
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  2429
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2430
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2431
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2432
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2433
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2434
    "Modified: / 10.7.1997 / 17:15:41 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2435
    "Modified: / 16.11.2001 / 17:38:15 / cg"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2436
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2437
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2438
initialize
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2439
    |menu menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel
11305
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2440
     newLayout v exceptionAndTogglePanel codeToggleLabels|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2441
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2442
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2443
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
  2444
    font := font onDevice:device.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2445
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2446
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  2447
    ignoreBreakpoints := true.    "/ ignore halts/breakpoints in doIts of
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2448
                                  "/ the debugger
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  2449
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2450
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2451
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2452
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2453
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2454
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2455
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2456
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2457
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2458
    mH := 0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2459
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2460
    menuPanel := MenuPanel in:self.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2461
    menuPanel receiver:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2462
    menuPanel verticalLayout:false.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2463
    menu := self class menuSpec decodeAsLiteralArray.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2464
    menu findGuiResourcesIn:self.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2465
    menuPanel menu:menu.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2466
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2467
    mH := menuPanel preferredHeight.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2468
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2469
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2470
    newLayout := UserPreferences current useNewLayoutInDebugger.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2471
    newLayout ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2472
        bpanel := HorizontalPanelView in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2473
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2474
        self initializeButtonsIn:bpanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2475
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2476
        bH := bpanel preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2477
        bpanel origin:(0.0 @ mH)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2478
               extent:(1.0 @ bH).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2479
        panel := VariableVerticalPanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2480
                            origin:(0.0 @ (mH + bH))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2481
                            corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2482
                            in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2483
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2484
        v := self initializeContextListViewIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2485
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2486
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2487
        codePanel := View in:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2488
        v := self initializeCodeViewIn:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2489
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2490
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2491
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2492
        v := self initializeInspectorViewsIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2493
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2494
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2495
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2496
        bpanel1 := HorizontalPanelView in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2497
        self initializeButtons1In:bpanel1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2498
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2499
        bH1 := bpanel1 preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2500
        bpanel1 origin:(0.0 @ mH)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2501
                extent:(1.0 @ bH1).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2502
        panel := VariableVerticalPanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2503
                            origin:(0.0 @ (mH + bH1))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2504
                            corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2505
                                in:self.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2506
        "/ panel showHandle:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2507
        "/ panel handlePosition:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2508
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2509
        v := self initializeContextListViewIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2510
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2511
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2512
        codePanel := View in:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2513
        bpanel2 := HorizontalPanelView in:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2514
        self initializeButtons2In:bpanel2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2515
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2516
        bH2 := bpanel2 preferredHeight + 5.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2517
        bpanel2 origin:(0.0 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2518
                extent:(1.0 @ bH2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2519
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2520
        exceptionInfoLabel := Label label:''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2521
        exceptionInfoLabel adjust:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2522
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2523
        exceptionAndTogglePanel := HorizontalPanelView in:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2524
        exceptionAndTogglePanel horizontalLayout:#left.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2525
        exceptionAndTogglePanel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2526
            geometryLayout:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2527
                ((LayoutFrame
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2528
                    origin:(0.0 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2529
                    corner:(1.0 @ 0.0))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2530
                        topOffset:bH2;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2531
                        bottomOffset:(bH2 + exceptionInfoLabel preferredHeight + 6);
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2532
                        rightOffset:-2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2533
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2534
        methodCodeToggleSelectionHolder := 1 asValue.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2535
        methodCodeToggleSelectionHolder onChangeSend:#methodCodeToggleChanged to:self.
11305
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2536
        codeToggleLabels := resources array:{ 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2537
                    'Showing Original Code (being executed, but obsolete)' asText backgroundColorizeAllWith:Color red lightened . 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2538
                    'Showing Current Code'                                 asText backgroundColorizeAllWith:Color green lightened . 
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2539
                  }.
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2540
        methodCodeToggle := PopUpList label:codeToggleLabels first in:exceptionAndTogglePanel.
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2541
        methodCodeToggle list:codeToggleLabels.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2542
        methodCodeToggle useIndex:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2543
        methodCodeToggle model:methodCodeToggleSelectionHolder.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2544
        methodCodeToggle beInvisible.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2545
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2546
        exceptionAndTogglePanel add:exceptionInfoLabel.
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 initializeCodeViewIn:codePanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2549
        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
  2550
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2551
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2552
        v := self initializeInspectorViewsIn:panel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2553
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2554
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2555
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2556
    DefaultDebuggerBackgroundColor notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2557
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2558
    ].
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2559
    LastExtent notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2560
        self extent:LastExtent.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2561
    ].
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2562
    LastOrigin notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2563
        self origin:LastOrigin.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2564
    ].
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2565
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2566
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2567
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2568
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2569
11305
f9019302309d changed: #initialize
Claus Gittinger <cg@exept.de>
parents: 11304
diff changeset
  2570
    "Modified: / 01-03-2012 / 14:28:38 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2571
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2572
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2573
initializeAbortButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2574
    abortButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2575
                label:(resources string:'Abort')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2576
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2577
                    abortButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2578
                    self doAbort
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2579
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2580
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2581
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2582
    "Created: / 17.11.2001 / 20:56:47 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2583
    "Modified: / 17.11.2001 / 20:57:17 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2584
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2585
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2586
initializeButtons1In:bpanel
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2587
    "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
  2588
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2589
    |separator|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2590
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2591
    bpanel horizontalLayout:#left.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2592
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2593
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2594
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  2595
    self initializeContinueButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2596
    continueButton width:150.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2597
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2598
    "/ separator := View extent:(10 @ 5) in:bpanel.
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2599
    "/ separator borderWidth:0; level:0.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2600
    self initializeAbortButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2601
    abortButton width:150.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2602
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2603
    separator := View extent:(100 @ 5) in:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2604
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2605
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2606
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2607
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2608
    separator := View extent:(50 @ 5) in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2609
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2610
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2611
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2612
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2613
        separator := View extent:(10 @ 5) in:bpanel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2614
        separator borderWidth:0; level:0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2615
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2616
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2617
    "Modified: / 17.11.2001 / 21:02:59 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2618
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2619
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2620
initializeButtons2In:bpanel
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  2621
    "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
  2622
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2623
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2624
9131
3787cb7519e8 changed:
Claus Gittinger <cg@exept.de>
parents: 9120
diff changeset
  2625
    bpanel horizontalLayout:#left.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2626
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2627
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2628
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2629
    self initializeNextButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2630
    nextButton width:100.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2631
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2632
    self initializeStepButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2633
    stepButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2634
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2635
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2636
"/ 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
  2637
"/ 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
  2638
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2639
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2640
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2641
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2642
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2643
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2644
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2645
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2646
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2647
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2648
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2649
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2650
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2651
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2652
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2653
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2654
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2655
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2656
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2657
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2658
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2659
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2660
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2661
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2662
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2663
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2664
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2665
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2666
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2667
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2668
    self initializeSendButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2669
    sendButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2670
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2671
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2672
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2673
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2674
    self initializeReturnButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2675
    returnButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2676
    self initializeRestartButtonIn:bpanel.
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2677
    restartButton width:100.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2678
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  2679
    "Modified: / 18-06-2010 / 08:32:05 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2680
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2681
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2682
initializeButtonsIn:bpanel
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2683
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2684
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2685
    bpanel horizontalLayout:#left.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2686
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2687
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2688
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2689
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2690
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2691
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2692
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2693
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2694
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2695
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2696
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2697
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2698
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2699
    self initializeReturnButtonIn:bpanel.
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2700
    self initializeRestartButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2701
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2702
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2703
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2704
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2705
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2706
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2707
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2708
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2709
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2710
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2711
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2712
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2713
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2714
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2715
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2716
"/        img := (resources at:'next')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2717
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2718
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2719
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2720
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2721
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2722
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2723
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2724
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2725
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2726
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2727
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2728
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2729
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2730
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2731
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2732
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2733
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2734
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2735
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2736
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2737
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2738
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2739
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2740
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2741
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2742
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2743
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2744
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2745
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2746
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2747
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2748
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2749
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2750
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2751
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2752
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2753
        self initializeReportButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2754
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2755
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2756
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2757
    "Created: / 17.11.2001 / 20:56:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2758
    "Modified: / 17.11.2001 / 21:03:18 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2759
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2760
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2761
initializeCodeViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2762
    |v|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2763
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2764
    (UserPreferences current useCodeView2In: #Debugger) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2765
        v := codeView := Tools::CodeView2 in: panel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2766
        codeView model: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2767
        codeView methodHolder: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2768
        codeView classHolder: ValueHolder new.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2769
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2770
        v := HVScrollableView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2771
                    for:CodeView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2772
                    miniScrollerH:true
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2773
                    miniScrollerV:false
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2774
                    in:panel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2775
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2776
    "/    v autoHideScrollBars:true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2777
        codeView := v scrolledView.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2778
        codeView enableMotionEvents. "/ for active help
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2779
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2780
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2781
    ^ v
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2782
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  2783
    "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
  2784
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2785
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2786
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2787
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2788
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2789
    v := HVScrollableView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2790
                for:SelectionInListView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2791
                miniScrollerH:true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2792
                miniScrollerV:false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2793
                in:panel.
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2794
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2795
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2796
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2797
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2798
    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
  2799
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2800
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2801
    contextView middleButtonMenu:(self middleButtonMenu).
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2802
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2803
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2804
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2805
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2806
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2807
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2808
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2809
    contextView middleButtonMenu:(self middleButtonMenu).
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2810
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2811
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2812
initializeContinueButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2813
    continueButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2814
                label:(resources string:'Continue')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2815
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2816
                    continueButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2817
                    self doContinue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2818
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2819
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2820
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2821
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2822
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2823
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2824
initializeDefineButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2825
    defineButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2826
                label:(resources string:'Define')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2827
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2828
                    defineButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2829
                    self doDefine
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2830
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2831
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2832
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2833
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2834
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2835
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2836
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2837
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2838
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2839
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2840
    hpanel := VariableHorizontalPanel in:panel.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2841
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2842
    receiverInspector := InspectorView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2843
                                origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2844
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2845
    receiverInspector fieldListLabel:'Receiver'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2846
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2847
    contextInspector := ContextInspectorView
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2848
                                origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2849
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2850
    contextInspector fieldListLabel:'Context'.
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  2851
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2852
    ^ hpanel
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2853
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2854
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2855
initializeNextButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2856
    nextButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2857
                label:(resources string:'Debug_Next')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2858
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2859
                    stepButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2860
                    self doNext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2861
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2862
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2863
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2864
    "Created: / 17.11.2001 / 20:59:38 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2865
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2866
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2867
initializeReportButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2868
    reportButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2869
                label:(resources string:'Report by Mail...')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2870
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2871
                    reportButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2872
                    self doOpenReportMailApp.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2873
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2874
                in:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2875
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2876
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2877
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2878
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2879
initializeRestartButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2880
    restartButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2881
                label:(resources string:'Restart')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2882
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2883
                    restartButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2884
                    self doRestart
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2885
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2886
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2887
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2888
    "Created: / 17.11.2001 / 20:58:52 / cg"
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
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2891
initializeReturnButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2892
    returnButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2893
                label:(resources string:'Return')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2894
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2895
                    returnButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2896
                    self doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2897
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2898
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2899
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2900
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2901
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2902
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2903
initializeSendButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2904
    sendButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2905
                label:(resources string:'Send')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2906
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2907
                    sendButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2908
                    self doSend
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2909
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2910
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2911
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2912
    "Created: / 17.11.2001 / 21:01:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2913
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2914
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2915
initializeStepButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2916
    stepButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2917
                label:(resources string:'Debug_Step')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2918
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2919
                    stepButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2920
                    self doStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2921
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2922
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2923
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2924
    "Created: / 17.11.2001 / 21:00:13 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2925
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2926
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2927
initializeTerminateButtonIn:bpanel
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2928
    terminateButton := Button
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2929
                label:(resources string:'Debug_Terminate')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2930
                action:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2931
                    terminateButton turnOffWithoutRedraw.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2932
                    self doTerminate
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2933
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2934
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2935
9135
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2936
    terminateButton backgroundColor:Color red lightened.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2937
    "/ terminateButton foregroundColor:Color red.
b686c004104c comment/format in: #initializeStepButtonIn:
Claus Gittinger <cg@exept.de>
parents: 9133
diff changeset
  2938
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2939
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2940
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2941
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2942
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2943
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2944
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2945
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2946
        inspectedProcess notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2947
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2948
             set prio somewhat higher (by 2, to allow walkBack-update process
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2949
             to run between mine and the debugged processes prio)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2950
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2951
            Processor activeProcess
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2952
                priority:(((inspectedProcess priority + 2) min:(Processor highIOPriority)) max:(Processor userSchedulingPriority+1)).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2953
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2954
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2955
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2956
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2957
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2958
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2959
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2960
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2961
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2962
    "/ 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
  2963
    "/ 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
  2964
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2965
    drawableId notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2966
        ^ self
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2967
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2968
    "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
  2969
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2970
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2971
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2972
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2973
setLabelFor:aMessage in:aProcess
9403
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  2974
    |l lines processNameOrNil pidOrNil osPidString|
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2975
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2976
    lines := aMessage asStringCollection.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2977
    lines size > 1 ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2978
        l := lines first
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2979
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2980
        l := aMessage.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2981
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2982
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2983
    l := l , ' ('.
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2984
    Error handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2985
        l := l , '???'
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2986
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2987
        processNameOrNil := aProcess name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2988
        processNameOrNil notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2989
            l := l , (processNameOrNil contractTo:20) , ''.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2990
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2991
        pidOrNil := aProcess id printString.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2992
        l := l , '[' , pidOrNil , ']'.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2993
    ].
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2994
    l := l , ')'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2995
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2996
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  2997
    ((ShowThreadID == true) and:[OperatingSystem isMSDOSlike]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  2998
        osPidString := ' {threadID: ',OperatingSystem getThreadId printString,'}'.
9403
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  2999
    ].
ba9cafeaecd7 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9348
diff changeset
  3000
8305
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3001
    exceptionInfoLabel notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3002
        exceptionInfoLabel
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3003
            label:(resources
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3004
                    string:'Exception: %1 in process %2 [%3]%4'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3005
                    with:(lines first colorizeAllWith:Color red)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3006
                    with:(processNameOrNil ? '')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3007
                    with:(pidOrNil ? '')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3008
                    with:(osPidString ? ''))
8305
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3009
    ].
9d6337aa3ab8 exception info
Claus Gittinger <cg@exept.de>
parents: 8257
diff changeset
  3010
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  3011
    "Modified: / 06-07-2006 / 12:43:19 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3012
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3013
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3014
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3015
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3016
contextInterrupt
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3017
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3018
        'contextIRQ' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3019
        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
  3020
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3021
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3022
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3023
    "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
  3024
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3025
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3026
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3027
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3028
        'stepIRQ' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3029
        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
  3030
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  3031
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3032
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3033
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  3034
    "Modified: / 13.1.1998 / 21:14:11 / cg"
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3035
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3036
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3037
stepOrNext
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3038
    |where here con s isWrap method wrappedMethod
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3039
     inBlock left ignore contextBelow lastWrappedContext
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3040
     leftWrap enteredWrap anyStepBlocks
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3041
     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
  3042
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3043
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  3044
    "/ DebuggingDebugger := false
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3045
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3046
    processName := (Processor activeProcess nameOrId),' [',Processor activeProcess id printString,']'.
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3047
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3048
    skipLineNr == #return ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3049
        self label:('stepping context returned ' , ' (process: ' , processName , ')').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3050
        here := thisContext sender sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3051
        here setLineNumber:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3052
        here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3053
        con := thisContext sender sender sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3054
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3055
        HaltInterrupt handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3056
            ('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
  3057
            ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3058
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3059
            self enter:con select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3060
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3061
        con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3062
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  3063
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  3064
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3065
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3066
"/    "/ 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
  3067
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3068
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3069
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3070
"/        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
  3071
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3072
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3073
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3074
    Processor activeProcess ~~ inspectedProcess ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3075
        'DebugView [info]: stray step interrupt' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3076
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3077
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  3078
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3079
    here := thisContext.        "stepInterrupt"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3080
    here := here sender.        "the caller; step- or contextIRQ"
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3081
    here := here sender.        "the interrupted context"
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3082
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3083
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3084
        '*******' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3085
        'here in ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3086
        inWrap ifTrue:['(wrap) ' print.].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3087
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3088
        here selector printCR.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3089
    ].
10
46e0d4f2079f *** empty log message ***
claus
parents: 7
diff changeset
  3090
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3091
    "/ kludge an bug-workaround;
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3092
    "/ I should not see those ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3093
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3094
    here selector == #ioInterrupt ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3095
        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3096
            'oops - should not get that one' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3097
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3098
        Processor ioInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3099
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3100
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3101
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3102
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3103
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3104
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3105
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3106
    stepUntilEntering notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3107
        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3108
            'check if entering ' print. stepUntilEntering printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3109
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3110
        (stepUntilEntering match:here selector) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3111
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3112
                'entering...' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3113
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3114
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , processName , ')').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3115
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3116
            lastStepUntilEntering := stepUntilEntering.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3117
            stepUntilEntering := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3118
            self enter:here select:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3119
            con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3120
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3121
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3122
        "/ see if stepping context is still active ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3123
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3124
        con := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3125
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3126
        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3127
            'start searching at: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3128
            con fullPrint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3129
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3130
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3131
            con := con sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3132
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3133
        con notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3134
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3135
                'steppingContext still active - continue stepping' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3136
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3137
            con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3138
            where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3139
            StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3140
            InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3141
            InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3142
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3143
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3144
        stepUntilEntering := nil.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3145
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3146
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  3147
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3148
     kludge to hide breakpoint wrappers in the context list:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3149
         check if we are in a wrapper methods hidden setup-sequence
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3150
         if so, ignore the interrupt and continue single sending
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  3151
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3152
    isWrap := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3153
    left := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3154
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3155
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3156
    where := here.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3157
    inWrap ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3158
        wrappedMethod := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3159
        5 timesRepeat:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3160
            (where notNil and:[where isBlockContext not]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3161
                method := where method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3162
                (method notNil and:[method isWrapped]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3163
                    "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3164
                     in a wrapper method
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3165
                    "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3166
                    wrappedMethod ~~ method ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3167
                        wrappedMethod := method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3168
                        lastWrappedContext := where.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3169
                        where sender receiver == method originalMethod ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3170
                            isWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3171
                        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3172
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3173
                        where == steppedContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3174
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3175
                            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3176
                                'change stepCon from: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3177
                                steppedContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3178
                                ' to lastWrapped: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3179
                                lastWrappedContext printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3180
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3181
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3182
                            inWrap := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3183
                            leftWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3184
                            wrapperContext := steppedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3185
                            steppedContext := lastWrappedContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3186
                        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3187
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3188
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3189
                where := where sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3190
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3191
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3192
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3193
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3194
    isWrap ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3195
        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3196
            'ignore wrap' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3197
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3198
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3199
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3200
        "/ ignore, while in wrappers hidden setup
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3201
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3202
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3203
        ObjectMemory flushInlineCaches.
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
        skipLineNr == #return ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3206
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3207
                'skipRet in wrap' 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
        ].
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
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3212
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3213
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3214
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3215
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3216
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3217
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3218
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3219
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3220
        'bigStep is: ' print. bigStep printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3221
        'steppedContext is: ' print. steppedContext printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3222
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3223
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3224
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3225
    "/ 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
  3226
    "/
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3227
    (bigStep
787
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  3228
    and:[steppedContext notNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3229
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3230
         a step or next - ignore all contexts below the interesting one
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
        where := here.      "the interrupted context"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3233
        contextBelow := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3234
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3235
        where home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3236
            "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3237
            "/ in a block called by 'our' context ?
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
            where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3240
"/ '*block*' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3241
                inBlock := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3242
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3243
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3244
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3245
        where == steppedContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3246
            where := where sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3247
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3248
            where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3249
                where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3250
"/ '*block*' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3251
                    inBlock := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3252
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3253
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3254
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3255
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3256
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3257
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3258
"/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
  3259
"/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
  3260
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3261
            where == steppedContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3262
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3263
                "/ check if we are in a context below steppedContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3264
                "/ (i.e. if steppedContext can be reached from
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3265
                "/  interrupted context. Not using context-ref but its
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3266
                "/  address to avoid creation of many useless contexts.)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3267
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3268
                inBlock ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3269
                    [where notNil] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3270
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3271
                        "/ if either the receiver or any arg of this context
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3272
                        "/ is a block of the steppedContext, we must really
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3273
                        "/ do a single step. Otherwise, stepping through a
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3274
                        "/ do:-loop would be very difficult.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3275
                        receiver := where receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3276
                        (receiver isBlock
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3277
                        and:[(receiver isKindOf:Block)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3278
                        and:[receiver home == steppedContext]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3279
                        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3280
                            anyStepBlocks := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3281
                        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3282
                            where args do:[:arg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3283
                                (arg isBlock
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3284
                                and:[(arg isKindOf:Block)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3285
                                and:[arg home == steppedContext]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3286
                                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3287
                                    anyStepBlocks := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3288
                                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3289
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3290
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3291
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3292
                        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3293
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3294
                            where selector printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3295
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3296
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3297
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3298
"/ 'found it - below; ignore' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3299
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3300
                             found the interesting context somwehere up in the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3301
                             chain. We seem to be still below the interesting one ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3302
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3303
                            tracing == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3304
                                here printString printCR
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3305
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3306
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3307
                              yes, a context below
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3308
                              - continue and schedule another stepInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3309
                              Must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3310
                              look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3311
                            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3312
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3313
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3314
"/ '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
  3315
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3316
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3317
"/                                    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
  3318
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3319
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3320
                                DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3321
                                    'below stepCon; continue until unwind of: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3322
                                    contextBelow printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3323
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3324
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3325
                                StepInterruptPending := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3326
                            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3327
                                ObjectMemory flushInlineCaches.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3328
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3329
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  3330
"/                                    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
  3331
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3332
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3333
                                DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3334
                                    'in stepCon; continue single stepping' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3335
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3336
                                StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3337
                                InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3338
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3339
                            where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3340
                            InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3341
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3342
                            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3343
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3344
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3345
                        (steppedContext notNil and:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3346
                         where methodHome == steppedContext methodHome]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3347
                            inBlockBelow := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3348
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3349
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3350
                        anyStepBlocks ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3351
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3352
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3353
"/ 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
  3354
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3355
where isBlockContext ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3356
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  3357
].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3358
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3359
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3360
                        where := where sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3361
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3362
                    s := 'context returned'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3363
                    left := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3364
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3365
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3366
"/ 'found it right in sender' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3367
                s := 'after step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3368
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3369
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3370
"/ 'found it right away' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3371
            s := 'after step'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3372
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3373
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3374
"/ ' send' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3375
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3376
         a send
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3377
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3378
        DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3379
            'clear steppedContext' printCR.
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
        steppedContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3382
        s := 'after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3383
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3384
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3385
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3386
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3387
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3388
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3389
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3390
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3391
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3392
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3393
    left ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3394
        steppedContext home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3395
            steppedContext := steppedContext home.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3396
            s := 'after step'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3397
            left := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  3398
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  3399
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3400
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3401
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3402
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3403
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3404
     kludge to hide breakpoint wrappers in the context list:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3405
         check if we are in a wrapper methods hidden exit-sequence
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3406
         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
  3407
    "
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3408
    (where isNil
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3409
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3410
    ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3411
        "/ did not find our steppedContext along the chain;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3412
        "/ could be in a wrappedMethods exitBlock ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3413
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3414
        leftWrap ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3415
            where := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3416
            wrappedMethod := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3417
            5 timesRepeat:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3418
                where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3419
                    where isBlockContext ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3420
                        method := where method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3421
                        (method notNil and:[method isWrapped]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3422
                            where == wrapperContext ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3423
                                DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3424
                                    'change stepCon fromWrapped: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3425
                                    steppedContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3426
                                    ' to: ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3427
                                    wrapperContext printCR.
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3430
                                inWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3431
                                enteredWrap := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3432
                                steppedContext := wrapperContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3433
                                wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3434
                            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3435
                        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3436
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3437
                    where := where sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3438
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3439
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3440
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3441
        enteredWrap ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3442
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3443
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3444
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3445
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3446
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3447
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3448
    left ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3449
        "/ special care for stepInterrupt in send,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3450
        "/ when created a dummy context (lineNr == 1)
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
        steppedContext lineNumber isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3453
            steppedContext selector == here sender selector ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3454
                left := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3455
                s := 'after step'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3456
                steppedContext := here sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3457
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3458
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3459
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3460
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  3461
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3462
    inBlock ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3463
"/ 'inBlock' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3464
        s := 'in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3465
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3466
    inBlockBelow ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3467
        ignore := true
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  3468
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3469
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3470
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3471
        where notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3472
            '(' print. steppedContextLineno print. ') ' print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3473
            where printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3474
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  3475
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3476
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3477
    ignore ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3478
        (bigStep
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3479
        and:[steppedContextLineno notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3480
        and:[where notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3481
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3482
            (here isBlockContext
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3483
            and:[(here methodHome == steppedContext)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3484
                 or:[here home == steppedContext]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3485
                DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3486
                    'same line but in block' printCR.
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3489
                steppedContext := actualContext := here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3490
                steppedContextLineno := here lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3491
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3492
                "/ kludge - I only have the info for up to 255 lines
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3493
                steppedContextLineno ~~ 255 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3494
                    DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3495
                        'same line - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3496
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3497
                    ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3498
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3499
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3500
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3501
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3502
        (left not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3503
        and:[skipLineNr notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3504
        and:[where notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3505
        and:[where lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3506
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3507
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3508
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3509
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3510
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3511
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3512
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3513
        (steppedContextLineno isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3514
        and:[skipLineNr isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3515
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3516
            DebuggingDebugger == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3517
                'same line2 (after conIRQ) - ignored' printCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3518
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3519
            ignore := true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3520
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3521
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3522
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3523
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3524
"/' ' printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3525
        where := nil. here := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3526
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3527
         yes, a context below
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3528
          - continue and schedule another stepInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3529
          Must flush caches since optimized methods not always
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3530
          look for pending interrupts
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3531
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3532
        ObjectMemory flushInlineCaches.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3533
        StepInterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3534
        InterruptPending := 1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3535
        InStepInterrupt := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3536
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3537
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3538
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3539
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3540
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  3541
    self label:(s , ' (process: ' , processName , ')').
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3542
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3543
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3544
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3545
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3546
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3547
    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
  3548
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3549
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  3550
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3551
        '==> 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
  3552
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3553
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3554
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3555
    (oneMore == true) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3556
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3557
            initiallyShown := 2
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3558
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3559
            initiallyShown := 1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3560
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3561
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3562
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3563
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  3564
    HaltInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3565
        'DebugView [info]: halt/breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3566
        ex proceed
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3567
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3568
        self enter:con select:initiallyShown
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3569
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3570
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3571
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3572
    "Created: / 14.10.1996 / 12:53:39 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3573
    "Modified: / 18.11.2001 / 01:00:55 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3574
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3575
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  3576
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3577
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3578
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3579
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3580
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3581
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3582
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3583
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3584
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3585
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3586
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3587
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3588
        sel := nil
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3589
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3590
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3591
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3592
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3593
autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3594
    ^ UserPreferences current autoRaiseDebugger
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3595
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3596
    "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
  3597
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3598
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3599
autoRaiseView:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3600
    UserPreferences current autoRaiseDebugger:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3601
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3602
    "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
  3603
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3604
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3605
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3606
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3607
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3608
    updateProcess notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3609
        monitorToggle lampColor:(Color yellow).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3610
        updateProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3611
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3612
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3613
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3614
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3615
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3616
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3617
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3618
    updateProcess isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3619
        updateProcess :=
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
                [true] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3622
                    monitorToggle showLamp ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3623
                        monitorToggle lampColor:(Color yellow).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3624
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3625
                        monitorToggle activeForegroundColor:Color black.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3626
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3627
                    (Delay forSeconds:0.25) wait.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3628
                    self updateContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3629
                    monitorToggle showLamp ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3630
                        monitorToggle lampColor:(Color red).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3631
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3632
                        monitorToggle activeForegroundColor:Color red.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3633
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3634
                    (Delay forSeconds:0.25) wait.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3635
                    self updateContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3636
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3637
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3638
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3639
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3640
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3641
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3642
browseClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3643
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3644
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3645
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3646
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3647
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3648
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3649
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3650
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3651
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3652
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3653
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3654
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3655
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3656
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3657
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3658
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3659
browseClassHierarchy
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3660
    "browse the receiver's classHierarchy (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3661
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3662
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3663
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3664
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3665
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3666
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3667
    mthd notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3668
        cls := mthd containingClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3669
        "/ still nil if unbound - then use receivers class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3670
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3671
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3672
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3673
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3674
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3675
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3676
    "Modified: / 17.11.2001 / 19:43:06 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3677
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3678
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3679
browseFullClassProtocol
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3680
    "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
  3681
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3682
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3683
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3684
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3685
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3686
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3687
    mthd notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3688
        cls := mthd containingClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3689
        "/ still nil if unbound - then use receivers class
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3690
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3691
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3692
        cls := selectedContext receiver class
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3693
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3694
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3695
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3696
    "Modified: / 17.11.2001 / 19:43:43 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3697
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3698
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3699
browseImplementingClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3700
    "browse the implementing class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3701
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3702
    |mthd who sel cls home|
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3703
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3704
    selectedContext isNil ifTrue:[^ self].
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3705
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3706
    mthd := selectedContext method.
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3707
    mthd notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3708
        who := selectedContext method who.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3709
        who notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3710
            cls := who methodClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3711
            sel := who methodSelector.
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3712
        ] ifFalse:[
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3713
            "might have been re-accepted"
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3714
            (home := selectedContext methodHome) notNil ifTrue:[
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3715
                (sel := home selector) notNil ifTrue:[
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3716
                    cls := home receiver class 
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3717
                            whichClassImplements:selectedContext selector.
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3718
                    cls notNil ifTrue:[
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3719
                        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
  3720
                    ].
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3721
                ]
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3722
            ].
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3723
        ].
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3724
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3725
    cls isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3726
        "/ class not found - try receiver
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3727
        cls := selectedContext receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3728
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3729
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3730
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3731
11303
28e758994349 changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11210
diff changeset
  3732
    "Created: / 22-11-1995 / 21:27:01 / cg"
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  3733
    "Modified: / 01-03-2012 / 14:21:11 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3734
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3735
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3736
browseImplementors
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3737
    "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
  3738
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3739
    selectedContext isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3740
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3741
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3742
    "/ selectedContext receiver class browserClass
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3743
    UserPreferences systemBrowserClass
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3744
         browseImplementorsOf:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3745
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3746
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3747
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3748
    "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
  3749
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3750
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3751
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3752
    (sel := codeView selection) notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3753
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3754
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3755
    initial isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3756
        initial := selectedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3757
                            ifTrue:[nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3758
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3759
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3760
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3761
                    requestSelector:'Selector to browse implementors of:'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3762
                    initialAnswer:initial.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3763
    selector size == 0 ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3764
        UserPreferences systemBrowserClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3765
            browseImplementorsMatching:selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3766
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3767
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3768
    "Modified: / 6.2.2000 / 01:05:14 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3769
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3770
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3771
browseProcessesApplication
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3772
    "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
  3773
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3774
    |p appClass|
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3775
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3776
    p := inspectedProcess ? Processor activeProcess.
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3777
    (p notNil and:[p isGUIProcess]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3778
        WindowGroup scheduledWindowGroups do:[:wg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3779
            wg process == p ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3780
                appClass := wg application class.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3781
                appClass browserClass openInClass:appClass selector:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3782
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3783
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3784
        ]
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3785
    ].
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3786
!
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3787
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3788
browseReceiversClass
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3789
    "browse the receiver's class (of the selected context's message)"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3790
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3791
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3792
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3793
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3794
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3795
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3796
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3797
    (cls includesSelector:sel) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3798
        sel := nil
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3799
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3800
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3801
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3802
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3803
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3804
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3805
browseSenders
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  3806
    "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
  3807
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3808
    selectedContext isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3809
        ^ self showError:'** select a context first **'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3810
    ].
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3811
    UserPreferences systemBrowserClass
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3812
        browseAllCallsOn:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3813
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3814
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3815
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3816
    "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
  3817
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3818
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3819
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3820
    (sel := codeView selection) notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3821
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3822
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3823
    initial isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3824
        initial := selectedContext isNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3825
                            ifTrue:[nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3826
                            ifFalse:[selectedContext selector].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3827
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3828
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3829
                    requestSelector:'Selector to browse senders of:'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3830
                    initialAnswer:initial.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3831
    selector size == 0 ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3832
        UserPreferences systemBrowserClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3833
            browseAllCallsOn:selector asSymbol.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3834
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3835
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3836
    "Modified: / 6.2.2000 / 01:05:29 / cg"
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3837
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3838
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3839
clearRememberedCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3840
    "clear the remembered callchain."
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3841
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3842
    RememberedCallChain := nil
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3843
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3844
    "Created: / 08-03-2012 / 01:29:46 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3845
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  3846
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3847
configureX:x y:y width:newWidth height:newHeight
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  3848
    super configureX:x y:y width:newWidth height:newHeight.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3849
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3850
    LastOrigin := self origin.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3851
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3852
    "Created: / 10-11-2010 / 10:09:11 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3853
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  3854
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3855
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3856
    "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
  3857
     This allows pasting it into some other view for printing ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3858
10760
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3859
    |infoText|
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3860
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3861
    contextArray isEmptyOrNil ifTrue:[
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3862
        infoText := 'No context, no walkback'.
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3863
    ] ifFalse:[
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3864
        infoText := (contextArray collect:[:con | con fullPrintString]) asStringCollection.
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3865
    ].
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3866
364875d0d64f changed: #copyWalkbackText
Stefan Vogel <sv@exept.de>
parents: 10752
diff changeset
  3867
    self setClipboardText:infoText
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3868
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3869
    "Modified: 28.8.1995 / 15:31:59 / claus"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3870
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3871
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3872
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  3873
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3874
     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
  3875
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3876
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3877
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3878
        (self confirm:('Code modified - abort anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3879
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3880
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3881
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3882
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3883
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3884
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3885
        inspectedProcess isDead ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3886
            self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3887
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3888
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3889
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3890
            self showError:'** the process does not handle the abort signal **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3891
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3892
            self interruptProcessWith:[AbortOperationRequest raise].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3893
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3894
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3895
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3896
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3897
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3898
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3899
    exitAction := #abort.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3900
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3901
    "exit private event-loop"
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3902
    catchBlock notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3903
        abortButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3904
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3905
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3906
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3907
        'DebugView [warning]: abort failed' errorPrintCR.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3908
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3909
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3910
    ^ self.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3911
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3912
    "Modified: / 17.11.2001 / 22:53:22 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3913
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3914
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3915
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3916
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3917
     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
  3918
     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
  3919
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3920
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3921
        (self confirm:('Code modified - abort anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3922
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3923
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3924
        ]
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3925
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3926
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3927
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3928
        inspectedProcess isDead ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3929
            self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3930
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3931
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3932
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3933
            self showError:'** the process does not handle the abort signal **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3934
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3935
            self interruptProcessWith:[AbortAllOperationRequest raise].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3936
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3937
        ^ self
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3938
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3939
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3940
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3941
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3942
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3943
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3944
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3945
    catchBlock notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3946
        abortButton turnOff.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3947
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3948
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3949
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3950
        'DebugView [warning]: abort failed' errorPrintCR.
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3951
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3952
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3953
    ^ self.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3954
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3955
    "Modified: / 17.11.2001 / 22:53:22 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3956
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3957
11378
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3958
doChangeProcessPriority
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3959
    "ask for and change the process's priority"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3960
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3961
    |oldPrio newPrio s|
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3962
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3963
    oldPrio := (inspectedProcess ? Processor activeProcess) priority.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3964
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3965
    [
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3966
        s := Dialog 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3967
                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
  3968
                initialAnswer:oldPrio printString.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3969
        s isEmptyOrNil ifTrue:[^ self].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3970
        newPrio := Integer readFrom:s onError:nil.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3971
        newPrio isNil
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3972
    ] whileTrue.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3973
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3974
    newPrio := newPrio max:(Processor lowestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3975
    newPrio := newPrio min:(Processor highestPriority).
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3976
    newPrio >= Processor highIOPriority ifTrue:[
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3977
        (Dialog 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3978
                confirm:(resources 
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3979
                            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
  3980
        ifFalse:[^ self].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3981
    ].
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3982
    (inspectedProcess ? Processor activeProcess) priority:newPrio.
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3983
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3984
    "Created: / 07-03-2012 / 14:15:09 / cg"
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3985
!
d7e8d0227a78 added: #doChangeProcessPriority
Claus Gittinger <cg@exept.de>
parents: 11372
diff changeset
  3986
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3987
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3988
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3989
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3990
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3991
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3992
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3993
        (self confirm:('Code modified - continue anyway ?')) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3994
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3995
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3996
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3997
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3998
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  3999
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4000
            continueButton foregroundColor:Color red darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4001
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4002
        continueButton label:(resources string:'Stop').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4003
        continueButton action:[self doStop].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4004
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4005
        self processPerform:#resume.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4006
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4007
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4008
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4009
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4010
        exContext := thisContext findSpecialHandle:false raise:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4011
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4012
        (exContext notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4013
        and:[ (ex := exContext receiver) isLazyValue not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4014
        and:[ ex isException
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4015
        and:[ ex signal == NoHandlerError
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4016
        and:[ ex parameter signal == RecursionError]]]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4017
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4018
            "/ debug due to unhandled recursionInterrupt.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4019
            "/ ask if we should proceed with more stack.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4020
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4021
            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
  4022
            answer == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4023
                proc := Processor activeProcess.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4024
                proc setMaximumStackSize:(proc maximumStackSize * 2).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4025
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4026
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4027
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4028
        steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4029
        tracing := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4030
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4031
        exitAction := #continue.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4032
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4033
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4034
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4035
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4036
        "/ not reached.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4037
        'DebugView [warning]: continue failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4038
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4039
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4040
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4041
        inspecting ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4042
            'DebugView [info]: resuming top context' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4043
            self showSelection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4044
            self doReturn
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4045
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4046
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4047
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  4048
    "Modified: / 5.10.1998 / 13:03:47 / cg"
2308
96e0033aa5a3 Exception handling change.
Stefan Vogel <sv@exept.de>
parents: 2305
diff changeset
  4049
    "Modified: / 26.7.1999 / 15:38:45 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4050
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4051
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4052
doDefine
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4053
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4054
     bagOfClassNames bagOfUsedClassNames implClass idx callee restart|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4055
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4056
    selectionIndex := contextView selection.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4057
    restart := true.
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4058
3283
1f20f44c64bf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3270
diff changeset
  4059
    selector := actualContext selector.
8963
0eaa4574519d changed: #doDefine
Claus Gittinger <cg@exept.de>
parents: 8952
diff changeset
  4060
    implClass := actualContext receiver class whichClassIncludesSelector:selector.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4061
    implClass notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4062
        "/ must be a subclassResponsibility
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4063
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4064
        idx := contextArray identityIndexOf:actualContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4065
        idx > 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4066
            callee := contextArray at:idx-1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4067
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4068
            callee selector == #subclassResponsibility ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4069
                restart := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4070
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4071
        ].
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4072
    ].
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4073
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4074
    "generate nice argument names"
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4075
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4076
    bagOfUsedClassNames := Bag new.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4077
    argNames := actualContext args
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4078
                    collect:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4079
                        [:eachArg |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4080
                            |nm|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4081
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4082
                            nm := eachArg class name.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4083
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4084
                                nm article , nm
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4085
                            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4086
                                bagOfUsedClassNames add:nm.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4087
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4088
                            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4089
                        ].
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4090
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  4091
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4092
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4093
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4094
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4095
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4096
    actualContext receiver isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4097
        (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
  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
        ]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4101
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4102
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4103
    receiversClass := actualContext receiver class.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4104
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4105
    (receiversClass instVarNames includes:selector) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4106
        code := '%1\' , haltStmtFix , '\    ^ %2'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4107
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4108
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4109
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4110
    and:[(selector endsWith:':')
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4111
    and:[receiversClass instVarNames includes:(selector copyWithoutLast:1)]])
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4112
    ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4113
        code := '%1\' , haltStmtFix , '\    %2 := arg.'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4114
        cat := 'accessing'.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4115
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4116
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4117
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4118
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4119
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4120
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4121
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4122
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4123
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4124
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4125
    code isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4126
        code := '%1\' , haltStmtDef
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4127
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4128
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4129
    self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4130
        codeAccept:(code bindWith:proto with:selector) withCRs
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4131
        inClass:receiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4132
        unwind:false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4133
        category:cat
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4134
        onCancel:[^ self].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4135
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  4136
    self doShowSelection:selectionIndex.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4137
    restart ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4138
        self doRestart
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  4139
    ]
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4140
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4141
    "Modified: / 17.11.2001 / 23:43:54 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4142
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  4143
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4144
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4145
    "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
  4146
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4147
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4148
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4149
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4150
        (self confirm:('Code modified - step anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4151
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4152
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4153
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4154
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4155
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4156
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4157
        steppedContext := wrapperContext := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4158
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4159
        exitAction := #step.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4160
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4161
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4162
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4163
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4164
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4165
        'DebugView [warning]: send failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4166
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4167
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4168
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4169
    "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
  4170
    "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
  4171
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4172
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4173
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4174
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4175
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4176
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4177
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4178
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4179
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4180
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4181
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4182
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4183
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4184
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4185
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4186
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4187
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4188
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4189
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4190
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4191
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4192
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4193
    "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
  4194
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4195
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4196
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4197
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4198
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4199
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4200
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4201
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4202
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4203
    traceView notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4204
        traceView topView destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4205
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4206
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4207
    tracing := false
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4208
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4209
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4210
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4211
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4212
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4213
    | str |
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4214
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4215
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4216
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4217
    str nextPutLine:('Error notification from '
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4218
                    , OperatingSystem getLoginName
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4219
                    , '@'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4220
                    , OperatingSystem getHostName).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4221
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4222
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  4223
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4224
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4225
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4226
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4227
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4228
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4229
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4230
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4231
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4232
    firstContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4233
        firstContext fullPrintAllOn:str.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4234
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4235
    str cr;cr.
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4236
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4237
    SendMailTool
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4238
        openForMessage:(str contents)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4239
        withSubject:('STX Error:[', self label, ']')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4240
        preOpenBlock:[:inst|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4241
            inst recipientEntryField value:'error@exept.de'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4242
        ].
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4243
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  4244
    "Modified: / 20-09-2007 / 12:40:40 / cg"
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4245
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  4246
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4247
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4248
    "restart - the selected context will be restarted"
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4249
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4250
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4251
        (self confirm:('Code modified - restart anyway ?')) ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4252
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4253
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4254
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4255
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4256
        selectedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4257
            ^ self showError:'** select a context first **'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4258
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4259
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4260
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4261
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4262
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4263
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4264
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4265
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4266
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4267
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4268
    "/ normally not reached
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4269
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4270
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4271
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4272
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4273
    "Modified: / 29.7.1998 / 21:49:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4274
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4275
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4276
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4277
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4278
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4279
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4280
        (self confirm:('Code modified - return anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4281
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4282
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4283
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4284
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4285
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4286
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4287
        selectedContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4288
            ^ self showError:'** select a context first **'
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
        self interruptProcessWith:[selectedContext unwind:nil].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4291
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4292
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4293
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4294
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4295
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4296
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4297
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4298
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4299
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4300
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4301
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4302
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4303
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4304
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4305
    "Modified: / 29.7.1998 / 21:50:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4306
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4307
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4308
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4309
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4310
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4311
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4312
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4313
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4314
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4315
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4316
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4317
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4318
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4319
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4320
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4321
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4322
"/        catchBlock notNil ifTrue:[catchBlock value].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4323
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4324
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4325
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4326
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4327
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  4328
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4329
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4330
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4331
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4332
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4333
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4334
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4335
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4336
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4337
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  4338
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4339
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4340
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4341
doStep:lineNr
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4342
    "common helper for step, skip & next.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4343
     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
  4344
     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
  4345
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4346
    |con method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4347
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4348
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4349
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4350
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4351
        (self confirm:('Code modified - step anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4352
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4353
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4354
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4355
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4356
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4357
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4358
        selectedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4359
            con := actualContext. "/ selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4360
            steppedContextLineno := actualContext lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4361
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4362
            con := contextArray at:2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4363
            steppedContextLineno := con lineNumber.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4364
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4365
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4366
        skipLineNr := lineNr.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4367
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4368
        lineNr == -1 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4369
            steppedContextLineno := skipLineNr := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4370
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4371
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4372
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4373
            steppedContext := contextArray at:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4374
            stepHow := #nextIn.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4375
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4376
            stepHow == #nextOut ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4377
                steppedContext := con home.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4378
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4379
                steppedContext := con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4380
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4381
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4382
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4383
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  4384
"/ ' 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
  4385
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4386
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4387
         if we step in a wrapped method,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4388
         prepare to skip the prolog ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4389
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4390
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4391
        inWrap := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4392
        method := con method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4393
        (method notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4394
        and:[method isWrapped
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4395
        and:[method originalMethod ~~ method]]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4396
            inWrap := true
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4399
        lineNr == #return ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4400
            Processor activeProcess forceInterruptOnReturnOf:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4401
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4402
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4403
        con := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4404
        bigStep := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4405
        haveControl := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4406
        exitAction := #step.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4407
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4408
        "exit private event-loop"
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4409
        catchBlock value.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4410
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4411
        "/ not reached
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4412
        'DebugView [warning]: step failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4413
        stepButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4414
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4415
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4416
    "Modified: / 29.7.1998 / 21:50:16 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4417
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4418
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4419
doStop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4420
    "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
  4421
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4422
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4423
        device hasColors ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4424
            continueButton foregroundColor:Color green darkened darkened.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4425
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4426
        continueButton label:(resources string:'Continue').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4427
        continueButton action:[self doContinue].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4428
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4429
        self processPerform:#stop.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4430
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4431
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4432
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4433
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4434
    "Modified: 20.10.1996 / 18:30:48 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4435
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4436
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4437
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4438
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4439
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  4440
    self checkIfCodeIsReallyModified ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4441
        (self confirm:('Code modified - terminate anyway ?'))
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4442
        ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4443
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4444
        ]
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4445
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4446
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4447
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4448
        self processPerform:#terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4449
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4450
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4451
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4452
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4453
    haveControl := false.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4454
    exitAction := #terminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4455
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4456
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4457
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4458
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4459
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4460
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4461
        'DebugView [warning]: terminate failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4462
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4463
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4464
            Processor activeProcess terminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4465
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4466
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4467
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4468
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  4469
    "Modified: / 29.7.1998 / 21:50:35 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4470
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4471
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4472
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4473
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4474
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4475
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4476
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4477
"/    |v b|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4478
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4479
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4480
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4481
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4482
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4483
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4484
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4485
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4486
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4487
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4488
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4489
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4490
"/            traceView := nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4491
"/        ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4492
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4493
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4494
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4495
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4496
"/    v realize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4497
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4498
"/    tracing := true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4499
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4500
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4501
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4502
    "tracestep - not implemented yet"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4503
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4504
    canContinue ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4505
        tracing := true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4506
        self doStep
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4507
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4508
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4509
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4510
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4511
    "exit from menu: immediate exit from smalltalk"
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
    OperatingSystem exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4514
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4515
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4516
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4517
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4518
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4519
    contextView selection notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4520
        (contextView selectionValue startsWith:'**') ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4521
            (contextArray at:(contextView selection)) inspect.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4522
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4523
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4524
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4525
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4526
middleButtonMenu
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4527
    <resource: #programMenu >
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4528
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4529
    |items m nameOfExecutable|
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4530
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4531
    exclusive ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4532
        items := #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4533
                    ('Show More WalkBack'               showMore                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4534
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4535
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4536
                    ('Add Breakpoint'                   addBreakpoint           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4537
                    ('Remove Breakpoint'                removeBreakpoint        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4538
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4539
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4540
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4541
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4542
        items := #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4543
                    ('Show More WalkBack'               showMore                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4544
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4545
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4546
                    ('Skip'                             skip                    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4547
                    ('Step Out'                         skipForReturn           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4548
                    ('Skip until Entering...'           skipUntilEntering       )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4549
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4550
"
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4551
                    ('Continue'                         doContinue              )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4552
                    ('Terminate'                        doTerminate             )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4553
                    ('Abort'                            doAbort                 )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4554
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4555
                    ('Step'                             doStep                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4556
                    ('Send'                             doSend                  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4557
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4558
                    ('Return'                           doReturn                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4559
                    ('Restart'                          doRestart               )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4560
                    ('-'                                                        )
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4561
"
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4562
                    ('Add Breakpoint'                   addBreakpoint           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4563
                    ('Remove Breakpoint'                removeBreakpoint        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4564
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4565
                ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4566
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4567
        self allowBreakPointsInDebugger ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4568
            items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4569
                        ('Allow Breakpoints && halt in Debugger'      doNotIgnoreBreakpoints  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4570
                    ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4571
        ] ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4572
            items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4573
                        ('Ignore Breakpoints && halt in Debugger'     doIgnoreBreakpoints  )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4574
                    ).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4575
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4576
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4577
        items := items , #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4578
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4579
                    ('Browse Implementing Class'      browseImplementingClass )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4580
                    ('Browse Receivers Class'             browseReceiversClass    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4581
                    ('Browse Receivers Class Hierarchy'   browseClassHierarchy    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4582
                    ('Browse Receivers Full Protocol'     browseFullClassProtocol )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4583
                    ('Implementors'                     browseImplementors      )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4584
                    ('Implementors Of...'               browseImplementorsOf    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4585
                    ('Senders'                          browseSenders           )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4586
                    ('Senders Of...'                    browseSendersOf         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4587
                    ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4588
                    ('Inspect Context'                  inspectContext          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4589
                  ).
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4590
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4591
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4592
    items := items , #(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4593
                ('Copy WalkBack Text'               copyWalkbackText        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4594
                ('-'                                                        )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4595
                ('QuickTerminate'                   quickTerminate          )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4596
                ('='                                                        )).
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4597
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4598
    nameOfExecutable := OperatingSystem nameOfSTXExecutable asFilename withoutSuffix baseName.
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4599
    nameOfExecutable = 'stx' ifTrue:[ nameOfExecutable := 'Smalltalk' ].
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4600
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4601
    items := items , {
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4602
        { 'Exit %1 (No Confirmation)' bindWith:nameOfExecutable. #exit                 }}.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4603
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4604
    m := PopUpMenu
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4605
                itemList:items
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4606
                resources:resources
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4607
                receiver:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4608
                for:contextView.
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4609
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4610
    verboseBacktrace ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4611
        m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4612
        m selectorAt:#showVerboseWalkback put:#showDenseWalkback
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4613
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4614
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4615
    inspecting ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4616
        m notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4617
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4618
                           browseClassHierarchy browseFullClassProtocol
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4619
                           browseImplementors browseSenders inspectContext skip doStepOut).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4620
        ].
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4621
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4622
    self updateMenuItems.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4623
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4624
    ^ m.
9488
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4625
2035181e2ec5 changed: #middleButtonMenu
Claus Gittinger <cg@exept.de>
parents: 9479
diff changeset
  4626
    "Modified: / 19-05-2010 / 11:49:56 / cg"
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4627
!
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4628
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4629
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4630
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4631
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4632
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4633
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4634
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4635
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4636
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4637
openSettingsDialog
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4638
    |settingsList settingsApp|
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4639
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4640
    settingsList :=
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4641
        #(
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4642
           #('Debugger'       #'AbstractSettingsApplication::DebuggerSettingsAppl'            )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4643
           #('Editor'         #'AbstractSettingsApplication::EditSettingsAppl'                )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4644
           #('Syntax Color'   #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4645
           #('Code Format'    #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4646
        ).
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4647
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4648
    settingsApp := SettingsDialog new.
9024
fb4eebb44e21 comment/format in: #initialize
Claus Gittinger <cg@exept.de>
parents: 8967
diff changeset
  4649
    "/ settingsApp requestor:self.
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4650
    settingsApp installSettingsEntries:settingsList.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4651
    settingsApp allButOpen.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4652
    settingsApp window label:('Debugger Settings').
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4653
    settingsApp openWindow.
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4654
!
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  4655
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4656
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4657
    "quick terminate - the process will get no chance for cleanup actions"
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
        self processPerform:#terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4661
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4662
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4663
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4664
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4665
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4666
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4667
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4668
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4669
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4670
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4671
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4672
    inspecting ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4673
        'DebugView [warning]: quick terminate failed' errorPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4674
        (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
  4675
            Debugger newDebugger.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4676
            Processor activeProcess terminateNoSignal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4677
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4678
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4679
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4680
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4681
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4682
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4683
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4684
rememberCallchain
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4685
    "remember the callchain in a classvar.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4686
     When entered the next time, highlight already entered contexts.
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4687
     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
  4688
     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
  4689
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4690
    RememberedCallChain := contextArray copy
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4691
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4692
    "Created: / 07-03-2012 / 23:07:07 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4693
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  4694
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4695
showDenseWalkback
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4696
    |m|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4697
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4698
    m := contextView middleButtonMenu.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4699
    verboseBacktrace := false.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4700
    m labelAt:#showDenseWalkback put:(resources string:'Show Verbose WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4701
    m selectorAt:#showDenseWalkback put:#showVerboseWalkback.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4702
    self redisplayBacktrace.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4703
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4704
    "Created: / 17.11.2001 / 20:08:08 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4705
    "Modified: / 17.11.2001 / 22:39:48 / cg"
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4706
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4707
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4708
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4709
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4710
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4711
    contextArray notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4712
        nChainShown := nChainShown * 2.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4713
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4714
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  4715
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4716
    "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
  4717
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4718
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4719
showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4720
    |m|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4721
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4722
    verboseBacktrace := true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4723
    m := contextView middleButtonMenu.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4724
    m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4725
    m selectorAt:#showVerboseWalkback put:#showDenseWalkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4726
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4727
    self redisplayBacktrace.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4728
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4729
    "Created: / 17.11.2001 / 20:07:57 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4730
    "Modified: / 17.11.2001 / 22:39:41 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4731
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4732
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4733
showingDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4734
    ^ verboseBacktrace == false.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4735
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4736
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4737
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4738
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4739
showingVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4740
    ^ verboseBacktrace == true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4741
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4742
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4743
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4744
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4745
sizeChanged:how
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4746
    super sizeChanged:how.
9626
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4747
    LastExtent := self extent.
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4748
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4749
    "Created: / 10-11-2010 / 09:08:41 / cg"
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4750
!
746106f8e83c remember origin & extent
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  4751
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4752
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4753
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4754
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4755
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4756
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4757
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4758
    "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
  4759
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4760
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4761
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4762
    "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
  4763
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4764
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4765
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4766
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4767
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4768
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4769
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4770
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4771
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4772
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4773
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4774
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  4775
    selector := Dialog
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4776
                request:'Skip until entering what (matchpattern):'
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4777
                initialAnswer:self goodSkipUntilSelector.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4778
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4779
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4780
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4781
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4782
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4783
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4784
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4785
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4786
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4787
toggleVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4788
    verboseBacktrace ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4789
        self showVerboseWalkback
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4790
    ] ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  4791
        self showDenseWalkback
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4792
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4793
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4794
    "Modified: / 17.11.2001 / 20:07:45 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4795
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4796
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4797
!DebugView methodsFor:'menu & button actions-breakpoints'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4798
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4799
addBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4800
    "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
  4801
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4802
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4803
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4804
    selectedContext isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4805
        ^ self showError:'** select a context first **'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4806
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4807
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4808
        ^ self
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4809
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4810
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4811
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4812
    implementorClass notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4813
        method := implementorClass compiledMethodAt:selectedContext selector.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4814
        (method notNil and:[method isBreakpointed not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4815
            method setBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4816
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4817
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4818
    contextView middleButtonMenu disable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4819
    contextView middleButtonMenu enable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4820
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4821
    "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
  4822
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4823
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4824
allowBreakPointsInDebugger
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4825
    ^ ignoreBreakpoints not
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4826
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4827
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4828
allowBreakPointsInDebugger:aBoolean
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4829
    ignoreBreakpoints := aBoolean not.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4830
    self initializeMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4831
    self initializeContextViewsMiddleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4832
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4833
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4834
doIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4835
    self allowBreakPointsInDebugger:false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4836
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4837
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4838
doNotIgnoreBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4839
    self allowBreakPointsInDebugger:true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4840
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4841
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4842
ignoreAllHaltsForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4843
    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
  4844
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4845
    "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
  4846
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4847
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4848
ignoreAllHaltsUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4849
    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
  4850
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4851
    "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
  4852
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4853
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4854
ignoreBreakpointsWithThisParameterForever
11370
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  4855
    Object disableBreakPoint:breakPointParameter.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  4856
    "/ self addIgnoredHaltForCount:-1 orTimeDuration:nil orUntilShiftKey:false forAll:false.
4aed54a6a78a changed:
Claus Gittinger <cg@exept.de>
parents: 11367
diff changeset
  4857
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4858
    "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
  4859
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4860
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4861
ignoreBreakpointsWithThisParameterUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4862
    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
  4863
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4864
    "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
  4865
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4866
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4867
ignoreHaltForever
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4868
    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
  4869
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4870
    "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
  4871
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4872
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4873
ignoreHaltUntilShiftKeyIsPressed
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4874
    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
  4875
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4876
    "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
  4877
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4878
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4879
openBreakPointBrowser
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4880
    Tools::BreakpointBrowser open
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4881
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4882
    "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
  4883
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4884
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4885
openIgnoreAllHaltsUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4886
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4887
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4888
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4889
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4890
                    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
  4891
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4892
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4893
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4894
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4895
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4896
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4897
            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
  4898
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4899
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4900
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4901
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4902
    "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
  4903
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4904
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4905
openIgnoreBreakpointsWithThisParameterNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4906
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4907
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4908
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4909
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4910
                    request:(resources 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4911
                                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
  4912
                                with:breakPointParameter)
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4913
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4914
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4915
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4916
        n := Integer readFrom:answer onError:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4917
        n notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4918
            LastIgnoreHaltNTimes := n.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4919
            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
  4920
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4921
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4922
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4923
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4924
    "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
  4925
    "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
  4926
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4927
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4928
openIgnoreBreakpointsWithThisParameterUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4929
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4930
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4931
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4932
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4933
                    request:(resources 
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4934
                                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
  4935
                                with:breakPointParameter)
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4936
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4937
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4938
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4939
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4940
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4941
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4942
            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
  4943
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4944
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4945
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4946
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4947
    "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
  4948
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4949
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4950
openIgnoreHaltNTimesDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4951
    |answer n|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4952
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4953
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4954
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4955
                    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
  4956
                    initialAnswer:(LastIgnoreHaltNTimes ? '') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4957
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4958
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4959
        n := Integer readFrom:answer onError:nil.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4960
        n notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4961
            LastIgnoreHaltNTimes := n.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4962
            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
  4963
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4964
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4965
    ] loop.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4966
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4967
    "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
  4968
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4969
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4970
openIgnoreHaltUntilTimeElapsedDialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4971
    |answer dT|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4972
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4973
    [
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4974
        answer := Dialog
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4975
                    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
  4976
                    initialAnswer:(LastIgnoreHaltDuration ? '30s') printString.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4977
        answer isEmptyOrNil ifTrue:[^ self].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4978
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4979
        dT := TimeDuration readFrom:answer onError:[ nil ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4980
        dT notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4981
            LastIgnoreHaltDuration := dT.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4982
            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
  4983
            ^ self.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4984
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4985
    ] loop
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4986
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4987
    "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
  4988
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4989
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4990
removeAllBreakpoints
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4991
    "remove all trace & breakpoints - if any"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4992
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4993
    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4994
        self withExecuteCursorDo:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4995
            MessageTracer unwrapAllMethods
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4996
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4997
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4998
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  4999
    "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
  5000
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5001
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5002
removeBreakpoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5003
    "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
  5004
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5005
    |implementorClass method|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5006
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5007
    selectedContext isNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5008
        ^ self showError:'** select a context first **'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5009
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5010
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5011
        ^ self
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5012
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5013
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5014
    implementorClass := selectedContext methodClass.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5015
    implementorClass notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5016
        method := implementorClass compiledMethodAt:selectedContext selector.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5017
        (method notNil and:[method isBreakpointed]) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5018
            method clearBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5019
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5020
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5021
    contextView middleButtonMenu disable:#removeBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5022
    contextView middleButtonMenu enable:#addBreakpoint.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5023
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5024
    "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
  5025
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5026
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5027
stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5028
    self class stopIgnoringHalts
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5029
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5030
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5031
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5032
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5033
abortAllIsHandled
9750
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5034
    ^ AbortAllOperationWantedQuery query
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5035
1b2ef761d2d0 changed: #abortAllIsHandled
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5036
    "Modified: / 09-02-2011 / 13:53:13 / cg"
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5037
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  5038
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5039
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5040
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5041
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5042
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5043
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5044
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5045
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5046
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5047
explainSelection
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5048
    |interval crsrPos|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5049
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5050
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5051
    interval isEmpty ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5052
        crsrPos := codeView characterPositionOfCursor.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5053
        codeView characterUnderCursor isSeparator ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5054
            crsrPos := (crsrPos - 1) max:1
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5055
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5056
        interval := crsrPos to:crsrPos.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5057
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5058
    self
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5059
        withNodeValueAtInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5060
        do:[:value :description |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5061
            self showValue:value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5062
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5063
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5064
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5065
findNodeForInterval:interval
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5066
    |source|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5067
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5068
    interval isEmpty ifTrue: [^ nil].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5069
8487
ddf59247960c slow runArray (text) operations
Claus Gittinger <cg@exept.de>
parents: 8432
diff changeset
  5070
    source := codeView contentsAsString string.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5071
"/    source := currentMethod notNil
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5072
"/                ifTrue:[ currentMethod source ]
8396
1bda666dc0e9 flyby help
Claus Gittinger <cg@exept.de>
parents: 8347
diff changeset
  5073
"/                ifFalse:[ codeView contents asString ].
8257
106d3fecbca0 findNodeForInterval: care for nonexisting source
Claus Gittinger <cg@exept.de>
parents: 8225
diff changeset
  5074
    source isNil ifTrue:[^ nil].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5075
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5076
    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string) allowErrors:true.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5077
"/    ^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string).
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5078
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5079
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5080
findNodeIn:tree forInterval:interval
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5081
    <resource: #obsolete>
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5082
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5083
    |node|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5084
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5085
self obsoleteMethodWarning.
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5086
    node := nil.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5087
    tree nodesDo:[:each |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5088
        (each intersectsInterval:interval) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5089
            (node isNil or:[node == each parent]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5090
                node := each
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5091
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5092
                (node parent notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5093
                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5094
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5095
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5096
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5097
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5098
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5099
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5100
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5101
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5102
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5103
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5104
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5105
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5106
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5107
    ('change:*' match:current) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5108
        ^ 'update:*'
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5109
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5110
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5111
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  5112
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5113
haltSelectors
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5114
    ^ #( #'halt' #'halt:' #'breakPoint:' #'breakPoint:info:' #'break').
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5115
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5116
    "Modified (format): / 27-01-2012 / 11:10:00 / cg"
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5117
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  5118
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5119
inspectedProcess
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5120
    ^ inspectedProcess
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5121
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5122
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5123
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5124
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5125
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5126
    inspectedProcess isDead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5127
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5128
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5129
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5130
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5131
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5132
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5133
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5134
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5135
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5136
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5137
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5138
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5139
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5140
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5141
8194
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5142
openHTMLDocument: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5143
    "open a HTMLDocumentView on anHTMLFilename"
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5144
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5145
    HTMLDocumentView openFullOnDocumentationFile: anHTMLFilename
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5146
!
051110bdd147 button panels
Claus Gittinger <cg@exept.de>
parents: 8193
diff changeset
  5147
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5148
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5149
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5150
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5151
    inspectedProcess isDead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5152
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5153
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5154
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5155
    inspectedProcess perform:aMessage.
9348
df88a9a5ef36 added: browseProcessesApplication
Claus Gittinger <cg@exept.de>
parents: 9337
diff changeset
  5156
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5157
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5158
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5159
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5160
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5161
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5162
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5163
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5164
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5165
    "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
  5166
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5167
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5168
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5169
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5170
    contextArray notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5171
        self withExecuteCursorDo:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5172
            oldSelection := contextView selection.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5173
            oldSelection notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5174
                oldContext := contextArray at:oldSelection ifAbsent:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5175
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5176
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5177
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  5178
"/            con := contextArray at:1.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5179
            "/ force redeisplay, even if same by changing the first entry
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5180
            contextArray size > 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5181
                contextArray at:1 put:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5182
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5183
            self setContext:con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5184
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5185
            oldContext isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5186
                idx := oldSelection
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5187
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5188
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5189
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5190
            contextView setSelection:idx.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5191
            idx notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5192
                self showSelection:idx
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5193
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5194
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5195
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5196
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5197
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  5198
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5199
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5200
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5201
selectedInterval
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5202
    ^ codeView selectedInterval
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5203
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5204
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5205
showError:message
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5206
    codeView contents:(resources string:message).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5207
    shown ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5208
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5209
            "/ consider this a kludge:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5210
            "/ if exclusive, cannot use flash, since it suspends
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5211
            "/ (but we cannot suspend here ...)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5212
            codeView redrawInverted. device flush.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5213
            OperatingSystem millisecondDelay:200.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5214
            codeView redraw
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5215
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5216
            codeView flash
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5217
        ]
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5218
    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5219
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5220
    "Modified: / 18.11.2001 / 00:01:13 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5221
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5222
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5223
showTerminated
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5224
    self showError:'** the process has terminated **'
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5225
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5226
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5227
showValue:aValue
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5228
    "/ TODO: show value in info field
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5229
    "/ Transcript showCR:aValue printString
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5230
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5231
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5232
stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5233
    ^ stepping
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5234
!
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5235
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5236
unstep
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5237
    stepping := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5238
    bigStep := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5239
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5240
    exitAction := nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5241
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5242
    "Modified: 22.10.1996 / 11:59:57 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5243
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5244
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5245
updateButtonsAndMenuItemsForContext:aContext
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5246
    |m|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5247
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5248
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5249
    m notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5250
        self updateMenuItems.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5251
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5252
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5253
            abortButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5254
            m enable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5255
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5256
            abortButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5257
            m disable:#doAbort.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5258
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5259
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5260
            terminateButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5261
            m disable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5262
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5263
            terminateButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5264
            m enable:#doTerminate.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5265
        ].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5266
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5267
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5268
    mayProceed == false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5269
        continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5270
        m notNil ifTrue:[m disable:#doContinue].
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5271
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5272
        continueButton enable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5273
        m notNil ifTrue:[m enable:#doContinue]
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5274
    ].
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5275
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5276
    "Created: / 06-07-2011 / 12:24:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5277
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5278
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5279
updateContext
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5280
    |oldContext idx|
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5281
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5282
    inspectedProcess state == #dead ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5283
        self showTerminated.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5284
        ^ self
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5285
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5286
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5287
    oldContext := selectedContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5288
    [
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5289
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5290
            oldContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5291
                contextArray notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5292
                    idx := contextArray identityIndexOf:oldContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5293
                    idx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5294
                        self showSelection:idx
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5295
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5296
                        codeView contents:('** context returned **')
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5297
                    ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5298
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5299
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5300
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5301
    ] valueUninterruptably.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5302
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5303
    "Modified: 20.10.1996 / 18:11:24 / cg"
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5304
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5305
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5306
updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5307
    |m mthd cls mCls rCls|
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5308
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5309
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5310
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5311
    "
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5312
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5313
    m notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5314
        m disable:#removeBreakpoint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5315
        m disable:#addBreakpoint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5316
        canShowMore ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5317
            m disable:#showMore
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5318
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5319
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5320
        selectedContext notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5321
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5322
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5323
            mthd := selectedContext method.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5324
            mthd notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5325
                cls := mCls := mthd containingClass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5326
                mthd isBreakpointed ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5327
                    m enable:#removeBreakpoint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5328
                ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5329
                    m enable:#addBreakpoint.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5330
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5331
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5332
            rCls := selectedContext receiver class.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5333
            cls isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5334
                cls := rCls
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5335
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5336
            cls notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5337
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5338
                rCls == mCls ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5339
                    m disable:#browseReceiversClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5340
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5341
                mCls isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5342
                    m disable:#browseImplementingClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5343
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5344
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5345
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5346
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5347
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5348
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5349
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5350
        ]
10203
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5351
    ]
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5352
!
Claus Gittinger <cg@exept.de>
parents: 9922
diff changeset
  5353
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5354
withNodeValueAtInterval:interval do:aBlock
9294
e19553d7e864 changed: #withNodeValueAtInterval:do:
Stefan Vogel <sv@exept.de>
parents: 9292
diff changeset
  5355
    |node definingNode nm nmBold varIdx parentNode receiver con receiversNonMetaClass|
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5356
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5357
"/interval printCR.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5358
    Error
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5359
        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5360
        do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5361
            [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5362
                node := self findNodeForInterval:interval
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5363
            ] valueWithWatchDog:[ ^ self ] afterMilliseconds:50.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5364
        ].
9314
e58b9abd145a comment/format in: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9308
diff changeset
  5365
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5366
    node isNil ifTrue:[ ^ self ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5367
    node isVariable ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5368
        "/ Transcript showCR:node.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5369
        ^ self
8592
6a544f86c279 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8580
diff changeset
  5370
    ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5371
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5372
    nm := node name.
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5373
    nmBold := nm allBold.
8600
7b68bafada1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8595
diff changeset
  5374
    actualContext isNil ifTrue:[^ self ].
8636
fc9c77c184a8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8626
diff changeset
  5375
    actualContext methodHome isNil ifTrue:[^ self ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5376
    receiver := actualContext methodHome receiver.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5377
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5378
    (nm = 'self') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5379
        aBlock value:receiver value:'receiver' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5380
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5381
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5382
    (nm = 'super') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5383
        aBlock value:receiver value:'receiver' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5384
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5385
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5386
    (nm = 'thisContext') ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5387
        aBlock value:actualContext value:'context' allBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5388
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5389
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5390
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5391
    definingNode := node whoDefines:nm.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5392
    definingNode isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5393
        (receiver class allInstVarNames includes:nm) ifTrue:[
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5394
"/aBlock value:'xIII' value:'instVar'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5395
            receiver class isMetaclass ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5396
                aBlock value:(receiver instVarNamed:nm) value:'classInstVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5397
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5398
                aBlock value:(receiver instVarNamed:nm) value:'instVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5399
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5400
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5401
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5402
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5403
        receiversNonMetaClass := receiver class theNonMetaclass.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5404
        (receiversNonMetaClass privateClasses contains:[:cls | cls nameWithoutPrefix = nm]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5405
            aBlock value:'' value:'private class ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5406
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5407
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5408
        (receiversNonMetaClass classVarNames includes:nm) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5409
            aBlock value:((currentMethod mclass ? receiversNonMetaClass) theNonMetaclass classVarAt:nm) value:'classVar ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5410
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5411
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5412
        receiversNonMetaClass sharedPoolNames do:[:eachPoolName |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5413
            |pool|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5414
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5415
            pool := Smalltalk at:eachPoolName.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5416
            pool isNil ifTrue:[ pool := receiversNonMetaClass topNameSpace at:eachPoolName].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5417
            (pool classVarNames includes:nm) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5418
                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
  5419
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5420
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5421
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5422
        (Smalltalk includesKey:nm asSymbol) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5423
            (Smalltalk at:nm asSymbol) isClass ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5424
                aBlock value:'class: ',nmBold value:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5425
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5426
                aBlock value:(Smalltalk at:nm asSymbol) value:'global ',nmBold.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5427
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5428
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5429
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5430
        aBlock value:'' value:'unknown'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5431
        ^ self
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5432
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5433
"/definingNode printCR.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5434
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5435
    definingNode isMethod ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5436
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5437
        varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5438
            Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5439
                handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5440
                do:[ aBlock value:(actualContext methodHome argAt:varIdx) value:'methodArg ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5441
            ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5442
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5443
        varIdx := definingNode temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5444
        varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5445
            actualContext methodHome numVars >= varIdx ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5446
                Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5447
                    handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5448
                    do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5449
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5450
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5451
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5452
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5453
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5454
    definingNode isBlock ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5455
        varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5456
        (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5457
            varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5458
                "/ am I in this block ?
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5459
                (actualContext lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5460
                and:[ definingNode lastLineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5461
                and:[ (actualContext lineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5462
                            between:definingNode firstLineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5463
                            and:definingNode lastLineNumber)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5464
                and:[ varIdx <= actualContext numArgs ] ]])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5465
                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5466
                    aBlock value:(actualContext argAt:varIdx) value:'blockArg ',nmBold .
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5467
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5468
                ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5469
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
  5470
                ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5471
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5472
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5473
    ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5474
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5475
    parentNode := definingNode parent.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5476
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5477
    [parentNode notNil] whileTrue:[
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5478
"/'isMethod ' print. parentNode isMethod printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5479
        parentNode isMethod ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5480
            varIdx := parentNode temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5481
            varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5482
                actualContext methodHome numVars >= varIdx ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5483
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5484
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5485
                        do:[ aBlock value:(actualContext methodHome varAt:varIdx) value:'methodVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5486
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5487
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5488
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5489
        ].
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5490
"/'isBlock ' print. parentNode isBlock printCR.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5491
        parentNode isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5492
            "/ we dont have any information on the inlineability
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5493
            "/ of this block here (RBParser does not know what
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5494
            "/ the compiler does.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5495
            "/ therefore, it is questionable if we can use the
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5496
            "/ contexts home context here.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5497
            "/ am I in this block ?
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5498
            con := actualContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5499
            [con notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5500
            and:[ parentNode lastLineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5501
            and:[ con lineNumber notNil
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5502
            and:[ con lineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5503
                    between:parentNode firstLineNumber
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5504
                    and:parentNode lastLineNumber ]]]] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5505
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5506
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5507
            con notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5508
                varIdx := parentNode arguments findFirst:[:arg | arg name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5509
                varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5510
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5511
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5512
                        do:[ aBlock value:(con argAt:varIdx) value:'blockArg ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5513
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5514
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5515
                varIdx := parentNode body temporaries findFirst:[:var | var name = nm].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5516
                varIdx ~~ 0 ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5517
                    Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5518
                        handle:[:ex | ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5519
                        do:[ aBlock value:(con varAt:varIdx) value:'blockVar ',nmBold ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5520
                    ^ self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5521
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5522
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5523
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5524
        parentNode := parentNode parent.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  5525
    ].
8214
87b74dc47b98 flyByHelp fixed
Claus Gittinger <cg@exept.de>
parents: 8213
diff changeset
  5526
    aBlock value:nmBold , ' is not in scope of selected context' value:nil.
9446
be34faef3546 changed:
Claus Gittinger <cg@exept.de>
parents: 9403
diff changeset
  5527
9688
805ea34ba3ef changed: #withNodeValueAtInterval:do:
Claus Gittinger <cg@exept.de>
parents: 9662
diff changeset
  5528
    "Modified: / 18-01-2011 / 17:57:34 / cg"
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5529
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5530
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5531
!DebugView methodsFor:'private queries'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5532
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5533
canBrowseClassHierarchy
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5534
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5535
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5536
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5537
    ^ m notNil and:[m isEnabled:#browseClassHierarchy]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5538
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5539
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5540
canBrowseFullClassProtocol
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5541
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5542
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5543
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5544
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5545
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5546
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5547
canBrowseImplementingClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5548
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5549
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5550
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5551
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5552
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5553
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5554
canBrowseProcessesApplication
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5555
    |p|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5556
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5557
    p := inspectedProcess ? Processor activeProcess.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5558
    p isNil ifTrue:[^ false].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5559
    ^ p isGUIProcess
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5560
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5561
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5562
canBrowseReceiversClass
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5563
    |m|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5564
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5565
    m := contextView middleButtonMenu.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5566
    ^ m notNil and:[m isEnabled:#browseReceiversClass]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5567
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5568
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5569
canDefineMethod
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5570
    ^ defineButton isVisible
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5571
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5572
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5573
canRestart
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5574
    ^ restartButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5575
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5576
    "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
  5577
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5578
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5579
canReturn
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5580
    ^ returnButton isEnabled
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5581
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5582
    "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
  5583
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5584
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5585
canSendEmail
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5586
    ^ SendMailTool notNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5587
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5588
    "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
  5589
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5590
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5591
canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5592
    ^ canShowMore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5593
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5594
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5595
hasContextSelected
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5596
    ^ contextView hasSelection
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5597
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5598
    "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
  5599
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5600
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5601
hasHaltsToIgnore
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5602
    ^ IgnoredHalts notEmptyOrNil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5603
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5604
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5605
isAborting
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5606
    ^ exitAction == #abort
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5607
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5608
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5609
isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5610
    ^ isStoppedAtBreakPointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5611
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5612
    "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
  5613
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5614
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5615
isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5616
    ^ isStoppedAtHaltOrBreakPoint
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5617
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5618
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5619
isStoppedAtHaltOrBreakPointOrSelectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5620
    ^ isStoppedAtHaltOrBreakPoint or:[self selectedContextIsWrapped]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5621
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5622
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5623
selectedContextIsWrapped
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5624
    |con mthd|
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5625
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5626
    contextView selection notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5627
        (contextView selectionValue startsWith:'**') ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5628
            con := contextArray at:(contextView selection).
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5629
            mthd := con methodHome method.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5630
            ^ mthd notNil and:[mthd isWrapped]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5631
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5632
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5633
    ^ false.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5634
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5635
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5636
setOfHiddenCallingSelectors
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5637
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5638
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5639
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5640
setOfHiddenCallingSelectors:aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5641
    setOfHiddenCallingSelectors := aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5642
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5643
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5644
!DebugView methodsFor:'private-breakpoints'!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5645
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5646
addIgnoredHaltForCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey forAll:aBoolean
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5647
    |haltingContext haltingMethod lineNrOfHalt|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5648
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5649
    aBoolean ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5650
        haltingMethod := #all
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5651
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5652
        haltingContext := self findHaltingContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5653
        haltingContext isNil ifTrue:[ 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5654
            Transcript showCR:'no halting context found'. 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5655
            ^ self 
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5656
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5657
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5658
        haltingMethod := haltingContext method.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5659
        lineNrOfHalt := haltingContext lineNumber.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5660
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5661
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5662
    self class
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5663
        ignoreHaltIn:haltingMethod at:lineNrOfHalt
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5664
        forCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey
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
    "Created: / 27-01-2012 / 11:31:12 / cg"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5667
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5668
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5669
canAddBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5670
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5671
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5672
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5673
    ^ m notNil and:[m isEnabled:#addBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5674
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5675
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5676
canRemoveBreakpoint
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5677
    |m|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5678
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5679
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5680
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5681
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5682
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5683
findHaltingContext
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5684
    |haltSelectors|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5685
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5686
    haltSelectors := self haltSelectors.
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5687
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5688
    contextArray keysAndValuesDo:[:idx :con |
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5689
        |sel con2 sel2 method|
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5690
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5691
        sel := con selector.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5692
        (haltSelectors includes:sel) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5693
            (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5694
                method mclass == Object ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5695
                    con2 := contextArray at:idx+1.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5696
                    sel2 := con2 selector.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5697
                    (haltSelectors includes:sel2) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5698
                        con2 method mclass == Object ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5699
                            ^ contextArray at:idx+2.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5700
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5701
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5702
                    ^ contextArray at:idx+1
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5703
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5704
                method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5705
(contextArray at:idx+1) infoPrintCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5706
                    ^ contextArray at:idx+1
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5707
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5708
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5709
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5710
        con method isWrapped ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5711
            ^ con
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5712
        ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5713
    ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5714
    ^ nil
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5715
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5716
    "Modified: / 27-01-2012 / 11:06:02 / cg"
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5717
!
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5718
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5719
ignoreBreakpoints
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5720
    ^ ignoreBreakpoints
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5721
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5722
    "Created: / 17.11.2001 / 18:20:16 / cg"
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5723
! !
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  5724
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5725
!DebugView methodsFor:'private-cache handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5726
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5727
cacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5728
    "remember myself for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5729
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5730
    "caching the last debugger will make the next debugger appear
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5731
     faster, since no resources have to be allocated in the display.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5732
     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
  5733
     Otherwise, the GC will not be able to release it."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5734
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5735
    windowGroup notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5736
        windowGroup setProcess:nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5737
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5738
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5739
    self releaseDebuggee.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5740
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5741
    cachable ~~ true ifTrue:[^ self].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5742
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5743
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5744
    "/ only cache if I am on the Display
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5745
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5746
    device == Display ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5747
        exclusive ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5748
            CachedExclusive := self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5749
        ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5750
            CachedDebugger := self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5751
        ].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5752
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5753
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5754
    ObjectMemory stepInterruptHandler == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5755
        ObjectMemory stepInterruptHandler:nil
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5756
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5757
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5758
    "Modified: 10.7.1997 / 15:50:46 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5759
    "Modified: 31.7.1997 / 21:20:14 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5760
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5761
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5762
isCached
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5763
    "tell wether we are a cached debugger"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5764
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5765
    CachedExclusive == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5766
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5767
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5768
    CachedDebugger == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5769
        ^ true.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5770
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5771
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5772
    ^ false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5773
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5774
    "Created: 10.7.1997 / 15:22:43 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5775
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5776
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5777
releaseDebuggee
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5778
    "We have to be careful to release all refs to the debuggee,
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5779
     because we may be in the cache.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5780
     Otherwise, the GC will not be able to release it"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5781
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5782
    busy := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5783
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5784
    codeView acceptAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5785
    codeView doItAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5786
    codeView contents:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5787
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5788
    receiverInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5789
    contextInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5790
    inspectedProcess := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5791
    contextArray := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5792
    selectedContext := actualContext := firstContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5793
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5794
    catchBlock := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5795
    grabber := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5796
    self autoUpdateOff.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5797
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5798
    "Created: / 10.7.1997 / 14:57:51 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5799
    "Modified: / 10.7.1997 / 15:50:38 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5800
    "Modified: / 17.11.2001 / 22:58:17 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5801
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5802
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5803
uncacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5804
    "do not remember myself any longer for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5805
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5806
    cachable := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5807
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5808
    CachedExclusive == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5809
        CachedExclusive := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5810
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5811
    CachedDebugger == self ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5812
        CachedDebugger := nil.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5813
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5814
    OpenDebuggers notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  5815
        OpenDebuggers remove:self ifAbsent:[].
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5816
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5817
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5818
    "Modified: 31.7.1997 / 21:20:11 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5819
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5820
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5821
!DebugView methodsFor:'private-code view'!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5822
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5823
codeAspect
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5824
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5825
    ^#method
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5826
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5827
    "Created: / 27-07-2011 / 13:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5828
! !
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  5829
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5830
!DebugView methodsFor:'private-context handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5831
11391
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5832
contextListEntryFor:aContext
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5833
    |s|
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5834
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5835
    aContext selector == #doIt ifTrue:[
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5836
        aContext receiver isNil ifTrue:[
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5837
            ^ 'doIt' allBold
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5838
        ]
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5839
    ].
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5840
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5841
    s := Text streamContents:[:s | aContext printOn:s ].
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5842
    RememberedCallChain notNil ifTrue:[
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5843
        (RememberedCallChain includesIdentical:aContext) ifTrue:[
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5844
            s := s colorizeAllWith:(Color red).
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5845
        ].
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5846
    ].
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5847
    ^ s
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5848
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5849
    "Created: / 21-05-2007 / 13:30:24 / cg"
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5850
!
730b258a005f class definition
Claus Gittinger <cg@exept.de>
parents: 11378
diff changeset
  5851
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5852
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5853
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5854
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  5855
    ^ 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
  5856
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  5857
    "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
  5858
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5859
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5860
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  5861
    "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
  5862
     Most complications here arise from filtering less-interesting contexts
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  5863
     if not in verbose-context mode."
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5864
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
  5865
    |con text method caller caller2 called called2 m count c cc
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5866
     suspendContext calledBySuspendContext nm h calledContext|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5867
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5868
    (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
  5869
        "no change"
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5870
        ^ false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5871
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5872
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5873
    isStoppedAtHaltOrBreakPoint := isStoppedAtBreakPointWithParameter := false.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5874
    firstContext := aContext.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5875
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5876
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5877
    m notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5878
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5879
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5880
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5881
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5882
    aContext isNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5883
        text := Array with:'** no context **'.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5884
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5885
    ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5886
        text := OrderedCollection new:nChainShown.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5887
        contextArray := OrderedCollection new:nChainShown.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5888
        con := aContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5889
        calledContext := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5890
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5891
        verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5892
            "/ with dense backtrace, hide the ProcessorScheduler
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5893
            "/ 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
  5894
            "/ context within the first 10 contexts
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5895
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5896
            suspendContext := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5897
            c := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5898
            1 to:10 do:[:i |
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5899
                |sel|
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5900
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5901
                c notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5902
                    (sel := c selector) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5903
                        ((sel isSymbol and:[sel startsWith:'suspend'])
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5904
                        and:[c receiver isMemberOf:Process]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5905
                            suspendContext := c.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5906
                            calledBySuspendContext := cc.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5907
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5908
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5909
                    cc := c.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5910
                    c := c sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5911
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5912
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5913
            suspendContext notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5914
                con := suspendContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5915
                calledContext := calledBySuspendContext.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5916
                suspendContext := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5917
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5918
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5919
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5920
        con notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5921
            "/ hide the halt implementation
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5922
            (self haltSelectors includes:con selector) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5923
                (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5924
                    method mclass == Object ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5925
                        (con selector startsWith:'breakPoint:') ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5926
                            isStoppedAtBreakPointWithParameter := true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5927
                            breakPointParameter := con argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5928
                        ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5929
                        isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5930
                        verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5931
                            calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5932
                            con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5933
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5934
                    ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5935
                        method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5936
                            isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5937
                            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5938
                                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5939
                                con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5940
                            ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5941
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5942
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5943
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5944
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5945
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5946
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5947
         get them all
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5948
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5949
        count := 0.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5950
        [con notNil and:[count <= nChainShown]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5951
            (self haltSelectors includes:con selector) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5952
                (method := con method) notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5953
                    method mclass == Object ifTrue:[
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5954
                        (con selector startsWith:'breakPoint:') ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5955
                            isStoppedAtBreakPointWithParameter := true.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5956
                            breakPointParameter := con argAt:1.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  5957
                        ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5958
                        isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5959
                    ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5960
                        method mclass == Breakpoint ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5961
                            isStoppedAtHaltOrBreakPoint := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5962
                        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5963
                    ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5964
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5965
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5966
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5967
            [
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5968
                DebuggingDebugger == true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5969
                    'showingContext1: (' print. con print.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5970
                    ') --> ' print. (self showingContext1:con calling:calledContext) printCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5971
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5972
                self showingContext1:con calling:calledContext
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5973
            ] whileFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5974
                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5975
                con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5976
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5977
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5978
            DebuggingDebugger == true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5979
                'showingContext2: (' print. con print.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5980
                ') --> ' print. (self showingContext2:con nesting:count) printCR.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5981
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5982
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5983
            (self showingContext2:con nesting:count) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5984
                "/ ignore it, if its in the same
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5985
                "/ method as the previous context
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5986
"/                (verboseBacktrace ~~ true
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5987
"/                and:[count > 0
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5988
"/                and:[contextArray last method == con method
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  5989
"/                and:[(contextArray last isBlockContext not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5990
"/                     & con isBlockContext not) not ]]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5991
"/                    "/ skip it, if its in the same method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5992
"/                    "/ as the called context.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5993
"/                ] ifFalse:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5994
                    contextArray add:con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5995
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5996
                    (MoreDebuggingDetail == true) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5997
                        nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5998
                    ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  5999
                        Error
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6000
                            handle:[:ex | nm := '???' ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6001
                            do:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6002
                                nm := self contextListEntryFor:con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6003
                            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6004
                    ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6005
                    text add:nm.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6006
                    count := count + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6007
"/                ].
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6008
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6009
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6010
            "/
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6011
            "/ 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
  6012
            "/
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6013
            method := con method.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6014
            (method notNil and:[method isWrapped]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6015
                called := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6016
                caller := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6017
                (caller notNil and:[caller receiver == method originalMethod]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6018
                    called2 := caller.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6019
                    caller2 := caller sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6020
                    (caller2 notNil and:[caller2 method == method]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6021
                        calledContext := called2.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6022
                        con := caller2
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6023
                    ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6024
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6025
                caller := caller2 := nil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6026
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6027
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6028
            "/ with dense backtrace, skip the doIt methods context
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6029
            "/ (its dummy anyway) and fake that contexts name
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
            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6032
                (con isBlockContext
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6033
                 and:[(h := con home) == con sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6034
                 and:[h notNil
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6035
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6036
                 and:[h method who isNil]]]]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6037
                    calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6038
                    con := con sender.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6039
                    text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6040
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6041
                    text add:(self contextListEntryFor:con methodHome).
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6042
                ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6043
                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
  6044
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6045
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6046
            "/ with dense backtrace, dont show below the doIt
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6047
            ( verboseBacktrace ~~ true
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6048
            and:[ (self setOfHiddenCallingSelectors includes:con selector) ]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6049
                con := nil.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6050
            ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6051
                calledContext := con.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6052
                con := con sender
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6053
            ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6054
        ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6055
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6056
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6057
         did we reach the end ?
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6058
        "
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6059
        (con isNil or:[con sender isNil]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6060
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6061
            "/ the very last one is the startup context
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6062
            "/ (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
  6063
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6064
            (contextArray notEmpty
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6065
            and:[contextArray last selector isNil]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6066
                contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6067
                text removeLast
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6068
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6069
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6070
            verboseBacktrace ~~ true ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6071
                "/ in dense mode, remove the process startup
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6072
                "/ contexts (if any)
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6073
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6074
                (contextArray size > 0
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6075
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6076
                    con selector == #start ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6077
                        contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6078
                        text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6079
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6080
                        [contextArray size > 0
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6081
                         and:[contextArray last methodHome == con]] whileTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6082
                            contextArray removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6083
                            text removeLast.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6084
                        ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6085
                    ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6086
                ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6087
            ]
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6088
        ] ifFalse:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6089
            m notNil ifTrue:[
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6090
                m enable:#showMore.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6091
            ].
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6092
            canShowMore := true.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6093
            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
  6094
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6095
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6096
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6097
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  6098
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6099
    releaseInspectors ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6100
        receiverInspector release.
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6101
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6102
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6103
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6104
    m notNil ifTrue:[
11209
202af72b0a90 comment/format in: #addIgnoredHaltForCount:orTimeDuration:forAll:
Claus Gittinger <cg@exept.de>
parents: 10760
diff changeset
  6105
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6106
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  6107
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6108
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  6109
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  6110
    "Created: / 14-12-1995 / 19:10:31 / cg"
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  6111
    "Modified: / 06-03-2012 / 12:23:46 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6112
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6113
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6114
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6115
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  6116
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6117
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6118
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6119
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  6120
    con := aContext.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6121
    verboseBacktrace ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6122
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6123
            con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6124
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6125
                con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6126
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6127
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6128
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6129
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6130
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6131
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6132
    "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
  6133
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  6134
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6135
showingContext1:aContext calling:calledContext
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6136
    "return false, if this (top) context is to be skipped.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6137
     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
  6138
     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
  6139
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6140
    |recIsException sel rec senderRec mthd mthdClass calledSel calledRec|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6141
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6142
    verboseBacktrace == true ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6143
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6144
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6145
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6146
    rec := aContext receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6147
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6148
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6149
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6150
    "/ to avoid firing/waiting the lazy or future
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6151
    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
  6152
    aContext sender notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6153
        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
  6154
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6155
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6156
    DebuggingDebugger == true ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6157
        'showingContext1: (' print. aContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6158
        ') calling: (' print. calledContext print.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6159
        ')' printCR.
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6160
    ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6161
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6162
    (#(doCallHandler: doRaise
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6163
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6164
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6165
            recIsException ifTrue:[ ^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6166
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6167
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6168
    (#(raise raiseRequest
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6169
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6170
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6171
            recIsException ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6172
                (senderRec isLazyValue not
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6173
                and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6174
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6175
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6176
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6177
    (#(doWhile:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6178
    ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6179
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6180
            rec isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6181
                true "aContext sender isBlockContext" ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6182
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6183
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6184
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6185
    calledContext notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6186
        calledSel := calledContext selector.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6187
        calledRec := calledContext receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6188
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6189
        calledRec isBlock ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6190
            (calledSel == #ensure:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6191
            (calledSel == #ifCurtailed:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6192
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6193
        (calledSel == #handle:do:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6194
        (calledSel == #answer:do:) ifTrue:[^ false].
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6195
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6196
"/        calledRec isLazyValue ifFalse:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6197
"/            ((calledSel == #doWhile:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6198
"/            and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6199
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6200
"/
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6201
"/            ((#(ensure: ifCurtailed: valueNowOrOnUnwindDo: valueOnUnwindDo:
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6202
"/                ) includes:calledSel)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6203
"/             and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6204
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6205
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6206
"/            ((calledSel == #handle:do:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6207
"/             and:[calledRec isExceptionHandler])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6208
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  6209
"/        ].
8620
3a015c65b246 beepInEditor flag
Claus Gittinger <cg@exept.de>
parents: 8600
diff changeset
  6210
    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6211
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6212
    (#(handleDo:) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6213
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6214
            (calledRec isLazyValue not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6215
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6216
    (#(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6217
        withCursor:do:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6218
        withWaitCursorDo:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6219
      ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6220
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6221
            (mthdClass == TopView) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6222
            (mthdClass == ApplicationModel) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6223
            (mthdClass == WindowGroup) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6224
        ].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6225
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6226
    (#(
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6227
        wait
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6228
        waitWithTimeout:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6229
        waitWithTimeoutMs:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6230
      ) includes:sel)
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6231
        ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6232
            (mthdClass == Semaphore) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6233
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6234
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6235
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6236
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6237
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6238
    "Created: / 17-11-2001 / 22:24:06 / cg"
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6239
    "Modified: / 08-12-2010 / 18:21:02 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6240
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6241
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6242
showingContext2:aContext nesting:nesting
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  6243
    "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
  6244
     Here, we hide some well known methods, which are usually
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6245
     not too interesting;
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6246
     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
  6247
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6248
    |sel rec mClass
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6249
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6250
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6251
    verboseBacktrace ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6252
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6253
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6254
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6255
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6256
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6257
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6258
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6259
    sender notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6260
        senderSelector := sender selector.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6261
        senderReceiver := sender receiver.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6262
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6263
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6264
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6265
    sel == #withCursor:do: ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6266
        (mClass == WindowGroup) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6267
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6268
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6269
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6270
    or:[sel == #withWaitCursorDo:]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6271
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6272
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6273
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  6274
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  6275
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  6276
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  6277
    or:[sel == #doWithIndex:]]]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6278
        mClass == Array ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6279
        mClass == OrderedCollection ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6280
        mClass == Set ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6281
        mClass == Dictionary ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6282
        mClass == Interval ifTrue:[^ false].
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6283
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6284
    (sel == #perform:
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6285
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6286
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6287
    or:[sel == #perform:with:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6288
    or:[sel == #perform:with:with:with:with:]]]])
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6289
    ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6290
        nesting == 0 ifTrue:[^ true].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6291
        mClass == Array ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6292
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6293
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6294
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6295
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6296
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6297
    (mClass == Object) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6298
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6299
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6300
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6301
    (mClass == Method) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6302
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6303
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6304
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6305
    (mClass == SmallInteger) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6306
        (sel == #to:do:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6307
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6308
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  6309
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  6310
    (mClass == Block) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6311
        sel == #ensure: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6312
        sel == #ifCurtailed: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6313
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6314
        sel == #valueOnUnwindDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6315
        sel == #on:do: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6316
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6317
        sel == #value ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6318
        sel == #value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6319
        sel == #value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6320
        sel == #value:value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6321
        sel == #value:value:value:value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6322
        sel == #value:value:value:value:Value: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6323
        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
  6324
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6325
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6326
    aContext isBlockContext ifTrue:[
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6327
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6328
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6329
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6330
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6331
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6332
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6333
"/        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
  6334
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6335
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6336
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6337
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6338
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6339
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6340
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6341
        aContext home notNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6342
            aContext home receiver isLazyValue ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6343
                (aContext home receiver isMemberOf:Semaphore) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6344
                    (aContext home selector == #wait) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6345
                    (aContext home selector == #waitWithTimeoutMs:) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6346
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6347
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6348
        ]
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6349
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6350
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  6351
    (rec isExceptionHandler) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6352
        sel == #handle:do: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6353
        sel == #handleDo: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6354
        (sel startsWith:#raise) ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6355
        sel == #answer:do: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  6356
    ].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  6357
    (rec isLazyValue not and:[ rec isException] ) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6358
        sel == #doRaise ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6359
        sel == #doCallHandler: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6360
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6361
            senderReceiverClass == Signal ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6362
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6363
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6364
    (mClass == Context) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6365
        sel == #unwind ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6366
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6367
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6368
    (mClass == ProcessorScheduler) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6369
        sel == #interruptActive ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6370
        sel == #threadSwitch: ifTrue:[^ false].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6371
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6372
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6373
    mClass == Process ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6374
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  6375
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6376
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  6377
9662
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6378
    "Created: / 17-11-2001 / 19:34:20 / cg"
d6150bfe9f1b changed:
Claus Gittinger <cg@exept.de>
parents: 9626
diff changeset
  6379
    "Modified: / 08-12-2010 / 18:21:45 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  6380
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  6381
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  6382
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6383
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6384
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6385
    "this is a kludge:
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6386
        start a dispatchloop which exits when
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6387
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6388
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6389
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6390
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6391
    [
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6392
        [haveControl] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6393
            self controlLoopCatchingErrors
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6394
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  6395
    ] ensure:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6396
        catchBlock := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6397
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6398
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6399
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  6400
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6401
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6402
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6403
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  6404
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6405
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  6406
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6407
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6408
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6409
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6410
    (exclusive or:[windowGroup isNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6411
        "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
  6412
         we start another dispatch loop, which exits when
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6413
         either continue, return or step is pressed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6414
         or (via the catchBlock) if an error occurs.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6415
         Since our display is an extra exclusive one,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6416
         all processing for normal views stops here ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6417
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6418
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6419
        WindowGroup setActiveGroup:windowGroup.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6420
        SignalSet anySignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6421
            |signal|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6422
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6423
            signal := ex signal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6424
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6425
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6426
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  6427
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6428
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6429
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6430
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6431
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6432
>>>>     :    ' , 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
  6433
>>>>     :    ' , 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
  6434
>>>>     :    ' , 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
  6435
>>>>     :    ' , 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
  6436
>>>>     :    ' , 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
  6437
>>>>     :    ' , 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
  6438
>>>>     :    ' , 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
  6439
>>>>     :    ' , 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
  6440
>>>>     :    ' , 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
  6441
>>>>     :    ' , 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
  6442
>>>>     :    ' , 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
  6443
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6444
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6445
caught & ignored.'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6446
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6447
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6448
            UserNotification handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6449
                (ex signal == ActivityNotificationSignal) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6450
                    ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6451
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6452
                self showError:ex description.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6453
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6454
            ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6455
                device dispatchModalWhile:[Processor activeProcess state:#debug.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6456
                                           haveControl].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6457
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6458
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6459
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6460
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6461
        "we do have multiple processes -
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6462
         simply enter the DebugViews-Windowgroup event loop.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6463
         effectively suspending event processing for the currently
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6464
         active group.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6465
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6466
        SignalSet anySignal handle:[:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6467
            |answer signal eMsg|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6468
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6469
            signal := ex signal.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6470
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6471
            DebuggingDebugger ~~ true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6472
                (signal == ActivityNotification) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6473
                    ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6474
                ].
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
                "/ ignore exceptions which say they explicitly have to be ignored
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6477
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6478
                ex catchInDebugger ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6479
                    'DebugView [info]: ',signal printString,'-signal in debugger cought for close' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6480
                    self destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6481
                    ex reject
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6482
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6483
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6484
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6485
                "/ ignore recursive breakpoints
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6486
                "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6487
                (signal isControlInterrupt) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6488
                    ignoreBreakpoints == true ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6489
                        'DebugView [info]: halt/break in debugger ignored 1' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6490
                        ('DebugView [info]: ',ex suspendedContext printString) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6491
                        ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6492
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6493
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6494
                (signal == TerminateProcessRequest) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6495
                    "/ mhm - someone wants to shoot me down while debugging ...
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6496
                    answer := Dialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6497
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6498
                                labels:#( 'Ignore' 'Close & terminate' )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6499
                                values:#( #proceed #close )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6500
                                default:#close.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6501
                    answer == #close ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6502
                        self destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6503
                        ex reject
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6504
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6505
                    ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6506
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6507
                signal == RecursiveExceptionError ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6508
                    (ex parameter signal == BreakPointInterrupt)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6509
                    ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6510
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6511
                        ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6512
                    ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6513
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6514
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6515
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6516
>>>> Signal:  ' , ex signal printString , '
448
e50e23ae7dc3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 430
diff changeset
  6517
>>>>          ' , ex parameter signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6518
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6519
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6520
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6521
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  6522
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  6523
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6524
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  6525
caught & ignored.'.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6526
                    ex return
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6527
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6528
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6529
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6530
            self topView raiseDeiconified.
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
            eMsg := ex description.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6533
            (ex signal isControlInterrupt) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6534
                eMsg := eMsg , Character cr asString , 'in ' , ex suspendedContext printString
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6535
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6536
            Dialog aboutToOpenBoxNotificationSignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6537
                handle:[:ex | ex proceed ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6538
                do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6539
                    answer := Dialog
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6540
                        choose:('Error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6541
                        labels:#( 'Proceed' 'Cancel' 'Debug' )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6542
                        values:#( #proceed #cancel #debug )
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6543
                        default:#cancel.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6544
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6545
            answer == #debug ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6546
                'DebugView [info]: cought exception - debugging' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6547
                Debugger
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6548
                    enterUnconditional:(ex suspendedContext)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6549
                    withMessage:'Error in debugger: ' , eMsg
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6550
                    mayProceed:true.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6551
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6552
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6553
            answer == #proceed ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6554
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6555
                ex proceed.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6556
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6557
            'DebugView [info]: cought exception - returning' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6558
            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6559
        ] do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6560
            "/ make certain that sub-debuggers, inspectors etc.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6561
            "/ come up on my device.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6562
            Screen currentScreenQuerySignal answer:device
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6563
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6564
                windowGroup
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6565
                    eventLoopWhile:[Processor activeProcess state:#debug.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6566
                                      true]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6567
                    onLeave:[]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6568
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6569
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6570
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6571
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6572
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  6573
    "Created: / 24.11.1995 / 20:33:45 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6574
    "Modified: / 18.11.2001 / 01:04:17 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6575
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6576
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6577
!DebugView methodsFor:'user interaction'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6578
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6579
checkIfCodeIsReallyModified
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6580
    |source|
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6581
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6582
    codeView modified ifFalse:[^ false].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6583
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6584
    currentMethod isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6585
        ^ false
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6586
    ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6587
    source := currentMethod source.
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6588
    source notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6589
        source string = codeView contents string ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6590
            ^ false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6591
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6592
        (source string withTabsExpanded:8) = (codeView contents string withTabsExpanded:8) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6593
            ^ false
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6594
        ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  6595
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6596
    ^ true
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6597
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6598
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6599
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6600
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6601
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6602
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  6603
checkSelectionChangeAllowed:newSelection
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6604
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6605
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6606
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6607
    and:[newSelection = contextView selection]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6608
        ^ true
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6609
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6610
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6611
    (self confirm:('Code modified - change selection anyway ?')) ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6612
        ^ false
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6613
    ].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6614
    codeView modified:false.
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  6615
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6616
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6617
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  6618
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6619
codeAccept:someCode
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6620
    "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
  6621
     and including selected method cannot be continued."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6622
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  6623
    ^ 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
  6624
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  6625
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6626
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  6627
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6628
codeAccept:someCode inClass:aClass unwind:doUnwind category:category onCancel:cancelAction
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6629
    "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
  6630
     and including selected method cannot be continued."
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6631
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6632
    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6633
     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
  6634
     executed correctly - however, the code shown in the debugger is no
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6635
     longer in sync (showing the new code) with the executed code.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6636
     Therefore, we hide those contexts to avoid confusion ....
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6637
     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
  6638
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6639
    "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
  6640
     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
  6641
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6642
    |con top newMethod|
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6643
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6644
    codeView withWaitCursorDo:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6645
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6646
         find the method-home context for this one
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6647
        "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6648
        doUnwind ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6649
            con := selectedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6650
            top := con.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6651
            [con notNil] whileTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6652
                (con methodHome == selectedContext) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6653
                    top := con
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6654
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6655
                con := con sender
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6656
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6657
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6658
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6659
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6660
        "/ provide the classes nameSpace on a query;
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6661
        "/ in case we accept while in another nameSpace context,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6662
        "/ (but for a class which is somewhere else)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6663
        "/
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6664
        (Class updateChangeFileQuerySignal,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6665
         Class updateChangeListQuerySignal,
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6666
         Class updateHistoryLineQuerySignal) answer:true
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6667
        do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6668
            Class nameSpaceQuerySignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6669
            answer:(aClass nameSpace)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6670
            do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6671
                Class packageQuerySignal
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6672
                answer:(aClass package ? PackageId noProjectID)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6673
                do:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6674
                    codeView contents:someCode.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6675
                    newMethod := aClass compilerClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6676
                                     compile:someCode
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6677
                                     forClass:aClass
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6678
                                     inCategory:category
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6679
                                     notifying:codeView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6680
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6681
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6682
        ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6683
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6684
        inspecting ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6685
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6686
             if it worked, remove everything up to and including top
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6687
             from context chain
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6688
            "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6689
            (newMethod notNil and:[newMethod ~~ #Error]) ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6690
                codeView modified:false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6691
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6692
                doUnwind ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6693
                    selectedContext canReturn ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6694
                        self setContext:(top "sender").
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6695
                        exitAction := #restart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6696
                        selectedContext setLineNumber:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6697
                        self doRestart.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6698
                    ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6699
                        self setContext:(top sender).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6700
                        exitAction := #return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6701
                    ].
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
                     continue/step is no longer possible
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6705
                    "
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6706
                    "/ continueButton disable.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6707
                    "/ canContinue := false.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6708
                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6709
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6710
                contextView selection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6711
                "/ self showSelection:1.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6712
                "/ contextView makeSelectionVisible. "/ scrollToLine:(selection - 1)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6713
            ] ifFalse:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6714
                ^ cancelAction value
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6715
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6716
        ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6717
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6718
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  6719
    "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
  6720
    "Modified: / 29-08-2006 / 14:22:22 / cg"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6721
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6722
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6723
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
  6724
    "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
  6725
     and including selected method cannot be continued."
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6726
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6727
    "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6728
     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
  6729
     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
  6730
     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
  6731
     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
  6732
     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
  6733
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6734
    "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
  6735
     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
  6736
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6737
    |sel implementorClass method category|
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6738
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6739
    codeView withWaitCursorDo:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6740
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6741
"/         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
  6742
"/        "
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6743
"/        con := selectedContext.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6744
"/        top := con.
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6745
"/        [con notNil] whileTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6746
"/            (con methodHome == selectedContext) ifTrue:[
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6747
"/                top := con
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6748
"/            ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6749
"/            con := con sender
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6750
"/        ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6751
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6752
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6753
         use class&selector to find the method for the compilation
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6754
         and compile.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6755
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6756
        category := givenCategoryOrNil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6757
        sel := selectedContext selector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6758
        implementorClass := selectedContext methodClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6759
        implementorClass notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6760
            category isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6761
                method := selectedContext method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6762
                method isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6763
                    method := implementorClass compiledMethodAt:sel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6764
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6765
                category := method category
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6766
            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6767
        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6768
            implementorClass := selectedContext receiver class.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6769
            implementorClass ~~ Object ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6770
                implementorClass := Dialog
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6771
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6772
                                        initialAnswer:implementorClass name
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6773
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6774
                implementorClass size == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6775
                    ^ cancelAction value "/ cancelled
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6776
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6777
                implementorClass := Smalltalk classNamed:implementorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6778
                implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6779
                    Dialog warn:'No such class'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6780
                    ^ cancelAction value "/ cancelled
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6781
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6782
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6783
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6784
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6785
        self
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6786
            codeAccept:someCode
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6787
            inClass:implementorClass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6788
            unwind:doUnwind
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6789
            category:category
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  6790
            onCancel:cancelAction.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6791
    ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6792
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6793
    "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
  6794
    "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
  6795
!
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  6796
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6797
codeCompletion
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6798
    |cls|
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6799
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6800
    currentMethod isNil ifTrue:[ ^ self ].
8338
2a8df762ed0b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8327
diff changeset
  6801
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6802
    cls := currentMethod mclass.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6803
    cls isNil ifTrue:[ ^ self ].
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6804
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6805
    UserInformation handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6806
        ex proceed.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6807
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6808
        DoWhatIMeanSupport codeCompletionForClass:cls context:selectedContext codeView:codeView.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6809
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6810
!
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  6811
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6812
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  6813
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  6814
     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
  6815
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6816
    (exclusive or:[windowGroup isNil]) ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6817
        ^ true
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6818
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6819
    ^ super confirm:aString.
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6820
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  6821
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  6822
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  6823
    "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
  6824
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6825
9235
fdcf1d96cdfe changed:
Stefan Vogel <sv@exept.de>
parents: 9155
diff changeset
  6826
    HaltInterrupt handle:[:ex |
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6827
        ignoreBreakpoints ifFalse:[ex reject].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6828
        ('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
  6829
        ex proceed
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6830
    ] do:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6831
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  6832
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  6833
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSĂ­gnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  6834
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  6835
    "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
  6836
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  6837
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6838
hideStackInspector
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6839
    stackInspector notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6840
        stackInspector destroy.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6841
        stackInspector := nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6842
        receiverInspector origin:(0.0 @ 0.0) corner:0.5 @ 1.0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6843
        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
  6844
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6845
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6846
9500
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6847
methodCodeToggleChanged
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6848
    |sel|
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6849
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6850
    sel := contextView selection.
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6851
    sel notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6852
        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
  6853
    ]
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6854
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6855
    "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
  6856
!
76bc64543166 care for original vs. current methods code (if it was changed)
Claus Gittinger <cg@exept.de>
parents: 9488
diff changeset
  6857
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6858
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  6859
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  6860
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6861
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6862
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6863
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6864
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6865
    evView notNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6866
        focusView := evView windowGroup focusView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6867
        focusView isNil ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6868
            focusView := evView.
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
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6871
        anEvent isKeyPressEvent ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6872
            key := anEvent key.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6873
            rawKey := anEvent rawKey.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6874
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6875
            inCodeView := (focusView == codeView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6876
                          or:[focusView isComponentOf:codeView]).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6877
            inCodeView ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6878
                key == #CodeCompletion ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6879
                    "/ complete the word before/under the cursor.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6880
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6881
                        pushUserEvent:#codeCompletion
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6882
                        for:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6883
                        withArguments:#().
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6884
                    ^ true
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
            ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6887
        ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6888
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  6889
false ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6890
        anEvent isButtonReleaseEvent ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6891
            anEvent view == codeView ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6892
                (RBParser notNil and:[RBParser isLoaded])
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6893
                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6894
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6895
                        pushEvent:anEvent.  "/ must be first in queue
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6896
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6897
                    self sensor
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6898
                      pushUserEvent:#explainSelection
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6899
                      for:self
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6900
                      withArguments:nil.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6901
                    ^ true  "/ eaten
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6902
                ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6903
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6904
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  6905
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  6906
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6907
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6908
    ^ false
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6909
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  6910
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6911
setCurrentMethod:aMethodOrNil
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6912
    currentMethod := aMethodOrNil.
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6913
!
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  6914
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6915
showSelection:lineNr
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6916
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6917
     Also sent to autoselect an interesting context on entry."
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6918
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6919
    Notification
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6920
        handle:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6921
            [:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6922
                "/ ex suspendedContext fullPrintAll.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6923
                Transcript showCR:ex description.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6924
                "/ Transcript showCR:ex parameter.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6925
                ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6926
            ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6927
        do:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6928
            [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6929
                Error
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6930
                    handle:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6931
                        [:ex |
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6932
                            |s con|
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6933
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6934
                            ex signal isControlInterrupt
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6935
                                ifTrue:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6936
                                    'DebugView [info]: halt/break ignored - while showing selection in debugger' infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6937
                                    ex proceed
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6938
                                ].
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6939
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6940
                            ('DebugView [info]: error at %1 when showing selection in debugger ignored' bindWith:ex suspendedContext) infoPrintCR.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6941
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6942
                            s := '' writeStream.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6943
                            s nextPutLine:'**** error in debugger, while extracting source'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6944
                            s nextPutLine:'****'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6945
                            s nextPutAll: '**** '; nextPutLine:(ex description "withCRs").
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6946
                            s nextPutLine:'****'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6947
                            con := ex suspendedContext.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6948
                            s nextPutAll: '**** '; nextPutLine:(con printString).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6949
                            con := con sender.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6950
                            HaltInterrupt ignoreIn:[
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6951
                                con fullPrintAllOn:s.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6952
                            ].
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6953
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6954
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6955
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6956
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  6957
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6958
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6959
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6960
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6961
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6962
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  6963
"/                            ].
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6964
                            codeView contents:(s contents).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6965
                            ex return.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6966
                        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6967
                    do:
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6968
                        [
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6969
                            self doShowSelection:lineNr
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6970
                        ]
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6971
            ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6972
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  6973
    "Modified: / 04-07-2006 / 14:50:06 / cg"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6974
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  6975
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6976
showStackInspectorFor:con
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6977
    stackInspector isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6978
        receiverInspector origin:(0.0 @ 0.0) corner:0.3 @ 1.0.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6979
        contextInspector origin:(0.3 @ 0.0) corner:(0.6 @ 1.0).
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6980
        stackInspector := InspectorView
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6981
                    origin:(0.6 @ 0.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6982
                    corner:(1.0 @ 1.0)
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6983
                    in:contextInspector superView.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6984
        stackInspector realize.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6985
        stackInspector fieldListLabel:'Stack'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  6986
        stackInspector hideReceiver:true
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6987
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6988
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6989
    stackInspector showLast
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6990
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6991
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  6992
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  6993
    "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
  6994
     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
  6995
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
  6996
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
  6997
     implementorClass lineNrInMethod rec m line
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  6998
     sender selSender tryVars possibleBlocks errMsg
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  6999
     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
  7000
     canDefine callee searchClass originalMethod|
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  7001
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  7002
    canDefine := false.
8212
51f9ecb52ae8 flyByHelp in codeView
Claus Gittinger <cg@exept.de>
parents: 8194
diff changeset
  7003
    self setCurrentMethod:nil.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  7004
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  7005
    contextArray notNil ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7006
        lineNr <= contextArray size ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7007
            con := contextArray at:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7008
            callee := contextArray at:lineNr-1 ifAbsent:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7009
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7010
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7011
         clicking on the '** ...'-line shows more ...
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7012
        "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7013
        con isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7014
            line := contextView list at:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7015
            (line startsWith:'**') ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7016
                self showMore.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7017
                lineNr >= contextArray size ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7018
                    contextView setSelection:lineNr.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7019
                    con := contextArray at:lineNr ifAbsent:nil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7020
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7021
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7022
            con isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7023
                codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7024
                ^ self
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7025
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7026
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7027
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7028
        selectedContext := con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7029
        m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7030
        (m notNil and:[selectedContext notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7031
            m enableAll:#(browseImplementors browseSenders inspectContext)
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7032
        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7033
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7034
        self withExecuteCursorDo:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7035
            codeSet := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7036
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7037
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7038
             give it to the (lower right) inspector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7039
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7040
            Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7041
                'DebugView [warning]: error while accessing context' errorPrintCR.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7042
                contextInspector inspect:nil.
9479
7364779433be changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 9446
diff changeset
  7043
"/ ex reject.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7044
            ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7045
                contextInspector inspect:con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7046
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7047
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7048
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7049
            "/ show a stack inspector sometimes
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7050
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7051
            con hasStackToShow ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7052
                self showStackInspectorFor:con
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7053
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7054
                self hideStackInspector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7055
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7056
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7057
            homeContext := con methodHome.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7058
            con canReturn ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7059
                returnButton enable. restartButton enable.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7060
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7061
                returnButton disable. restartButton disable.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7062
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7063
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7064
            lineNrInMethod := con lineNumber.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7065
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7066
            canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7067
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7068
            homeContext isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7069
                "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7070
                 mhmh - an optimized block
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7071
                 should get the block here, and get the method from
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7072
                 that one ...
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7073
                 But in the current version, there is no easy way to get to the block
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7074
                 since that one is not in the context.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7075
                 A future new block calling scheme will fix this
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7076
                 (passing the block instead of the home as block argument).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7077
                "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7078
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7079
                "temporary kludge - peek into the sender context.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7080
                 If its a do-like method and there is a single block variable
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7081
                 in the args or temporaries, that must be the one.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7082
                 This helps in some cases.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7083
                "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7084
                (sender := con sender) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7085
                    tryVars := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7086
                    (selSender := sender selector) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7087
                        ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7088
                            tryVars := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7089
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7090
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7091
                    tryVars ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7092
                        possibleBlocks := sender argsAndVars select:[:v | v isBlock].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7093
                        possibleBlocks := possibleBlocks select:[:b | b home isNil].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7094
                        possibleBlocks size == 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7095
                            method := possibleBlocks first method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7096
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7097
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7098
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7099
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7100
                "fetch rec here - so we won't need context in doItAction"
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7101
                rec := homeContext receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7102
                sel := homeContext selector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7103
                sel notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7104
                    canAccept := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7105
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7106
                    implementorClass := homeContext methodClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7107
                    implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7108
                        Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7109
                            ex signal == BreakPointInterrupt ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7110
                                ex proceed.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7111
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7112
                            code := 'error while asking method for its source'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7113
                            code := code , Character cr , ex signal printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7114
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7115
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7116
                            canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7117
                            ex return.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7118
                        ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7119
                            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7120
                             special: look if this context was created by
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7121
                             valueWithReceiver kind of method invocation;
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7122
                             if so, grab the method from the sender and show it
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7123
                            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7124
                            ((sender := homeContext sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7125
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7126
                            and:[sender receiver isMethod]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7127
                                method := sender receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7128
                                canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7129
                            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7130
                                (method := con method) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7131
                                    canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7132
                                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7133
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7134
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7135
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7136
                        method := implementorClass compiledMethodAt:sel.
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
            homeContext notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7142
                searchClass := homeContext searchClass ? rec class.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7143
                currentMethod := searchClass lookupMethodFor:sel.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7144
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7145
            originalMethod := currentMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7146
            (currentMethod notNil and:[currentMethod ~~ method]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7147
                originalMethod := method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7148
                methodCodeToggleSelectionHolder value = 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7149
                    method := originalMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7150
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7151
                    method := currentMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7152
                    lineNrInMethod := nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7153
                    canAccept := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7154
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7155
                methodCodeToggle beVisible.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7156
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7157
                methodCodeToggle beInvisible.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7158
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7159
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7160
            code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7161
                errMsg := nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7162
                method isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7163
                    "/ fall back heuristics
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7164
                    con isBlockContext ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7165
                        ((sender := con sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7166
                        and:[((sender selector ? '') startsWith:'value')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7167
                        and:[sender receiver isBlock]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7168
                            code := sender receiver source.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7169
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7170
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7171
                        ((sender := con sender) notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7172
                        and:[((sender selector ? '') startsWith:'valueWith')
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7173
                        and:[sender receiver isMethod]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7174
                            method := sender receiver.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7175
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7176
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7177
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7178
                method notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7179
                    Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7180
                        ex signal isControlInterrupt ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7181
                            ex proceed.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7182
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7183
                        code := 'error while asking method for its source'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7184
                        code := code , Character cr , ex signal printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7185
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7186
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7187
                        canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7188
                        ex return.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7189
                    ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7190
                        self sensor shiftDown ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7191
                            code := method decompiledSource
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7192
                        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7193
                            code := method source.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7194
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7195
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7196
                    code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7197
                        method sourceFilename notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7198
                            codeView contents:(resources
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7199
                                                       string:'** no sourcefile: %1 **'
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7200
                                                       with:method sourceFilename).
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7201
                            codeView flash.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7202
                            codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7203
                        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7204
                            [
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7205
                                |src|
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7206
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7207
                                src := String streamContents:[:s | Decompiler decompile:method to:s].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7208
                                codeView contents:src.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7209
                                codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7210
                            ] on: Error do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7211
                                errMsg := '** no source **'
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7212
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7213
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7214
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7215
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7216
                    homeContext isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7217
                        errMsg := '** sorry; cannot show code of all optimized blocks (yet) **'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7218
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7219
                        errMsg := '** no method - no source **'.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7220
                        canDefine := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7221
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7222
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7223
                errMsg notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7224
                   self showError:errMsg.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7225
                   codeSet := true.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7226
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7227
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7228
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7229
            code isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7230
                "/ canAccept := false.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7231
                codeSet ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7232
                    codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7233
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7234
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7235
                lineNrInMethod notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7236
                    lineNrInMethod == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7237
                        (method notNil and:[method isJavaMethod]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7238
                            lineNrInMethod := method lineNumber
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7239
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7240
                        "/ guess lineNumber from sent-messages selector
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7241
                        "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7242
                        lineNrInMethod == 0 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7243
                            |conIdx sentContext messages|
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7244
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7245
                            conIdx := contextArray identityIndexOf:con.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7246
                            conIdx > 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7247
                                sentContext := contextArray at:conIdx-1.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7248
                                sentContext isBlockContext ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7249
                                    (method notNil and:[code notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7250
                                        messages := method messagesSent.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7251
                                        messages size == 1 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7252
                                            sentContext selector == messages first ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7253
                                                lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7254
                                            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7255
                                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7256
                                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7257
                                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7258
                            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7259
                        ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7260
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7261
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7262
                codeView isCodeView2 ifTrue:[
10649
3f480fd28a48 changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 10628
diff changeset
  7263
                    codeView model setValue: code.
3f480fd28a48 changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 10628
diff changeset
  7264
                    codeView model changed.
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7265
                    codeView methodHolder value: method.
10752
77650773a9ea Fixed class holder for CodeView2
vrany
parents: 10649
diff changeset
  7266
                    codeView classHolder value: ((method respondsTo: #mclass) ifTrue:[method mclass] ifFalse:[rec class])
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7267
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7268
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7269
                UserPreferences current syntaxColoring ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7270
                    implementorClass isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7271
                        (con isBlockContext
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7272
                        and:[con home isNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7273
                        and:[con guessedHome notNil]])
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7274
                        ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7275
                            implementorClass := con guessedHome mclass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7276
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7277
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7278
                    implementorClass notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7279
                        (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7280
                            code size < 100000 ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7281
                                Error handle:[:ex |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7282
                                ] do:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7283
                                    code := highlighter formatMethod:code in:implementorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7284
                                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7285
                            ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7286
                        ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7287
                    ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7288
                ].
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  7289
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  7290
"/                code ~= (codeView contents) ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7291
                    codeView setContents:code.
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  7292
"/                ].
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7293
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7294
                (lineNrInMethod notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7295
                and:[lineNrInMethod ~~ 0
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7296
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  7297
lineNrInMethod == 255 ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7298
                    (lineNrInMethod == 255
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7299
                    and:[method notNil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7300
                    and:[method hasCode not]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7301
                        "/ means: do not really know in interpreted methods
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7302
                        codeView selectFromLine:255 col:1 toLine:codeView list size + 1 col:0.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7303
                    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7304
                        codeView selectLine:lineNrInMethod.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7305
                    ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7306
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  7307
].
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7308
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7309
                    codeView unselect.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7310
                    codeView scrollToTop
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7311
                ]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7312
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7313
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7314
            codeView acceptEnabled:canAccept.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7315
            canAccept ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7316
                codeView acceptAction:[:code | self codeAccept:code asString]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7317
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7318
                codeView acceptAction:[:code | self beep]
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7319
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7320
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7321
            receiverInspector inspect:rec.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7322
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7323
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7324
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7325
             the one below is wrong: currently, the
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7326
             evaluator cannot handle passed contexts.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7327
             Once it does, pass con as in:-arg
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7328
            "
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7329
            (rec isJavaObject
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7330
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7331
                "/ although a java object, use the smalltalk parser here for doIts.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7332
                evaluatorClass := Parser
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7333
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7334
                (method notNil and:[method mclass notNil]) ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7335
                    evaluatorClass := method mclass evaluatorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7336
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7337
                    evaluatorClass := rec class evaluatorClass.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7338
                ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7339
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7340
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7341
            codeView doItAction:[:theCode |
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7342
                             evaluatorClass
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7343
                                 evaluate:theCode
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7344
                                 in:actualContext
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7345
                                 receiver:rec
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7346
                                 notifying:codeView
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7347
                                 logged:true
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7348
                                 ifFail:nil
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7349
            ].
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7350
            self setCurrentMethod:method.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7351
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7352
            selectedContext := homeContext.
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7353
            actualContext := con
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7354
        ].
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7355
    ] ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7356
        codeView contents:nil.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7357
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7358
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7359
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7360
    con isContext ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7361
        sendButton disable.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7362
    ] ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7363
        sendButton enable.
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7364
    ].
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7365
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7366
    "clear out locals to prevent keeping around unneeded contexts
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7367
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7368
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7369
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7370
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7371
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7372
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7373
10205
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7374
    (callee notNil
Claus Gittinger <cg@exept.de>
parents: 10203
diff changeset
  7375
    and:[callee method notNil
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7376
    and:[callee method selector == #subclassResponsibility]]
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7377
    ) ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7378
        canDefine := true.
8595
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7379
    ].
9ae7fccae337 allow \"define\" when in a subclassResponsibility method
Claus Gittinger <cg@exept.de>
parents: 8592
diff changeset
  7380
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7381
    canDefine ifTrue:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7382
        defineButton beVisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7383
    ] ifFalse:[
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7384
        defineButton beInvisible.
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7385
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7386
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7387
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7388
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7389
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7390
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7391
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  7392
    "Created: / 14-08-1997 / 20:15:00 / cg"
10649
3f480fd28a48 changed: #updateForContext:
Claus Gittinger <cg@exept.de>
parents: 10628
diff changeset
  7393
    "Modified: / 22-08-2011 / 13:49:39 / cg"
10752
77650773a9ea Fixed class holder for CodeView2
vrany
parents: 10649
diff changeset
  7394
    "Modified: / 05-10-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7395
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7396
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7397
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'accessing'!
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7398
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7399
ignoreCount:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7400
    ignoreCount := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7401
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7402
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7403
ignoreEndTime:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7404
    ignoreEndTime := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7405
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7406
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7407
ignoreUntilShiftKeyPressed:aBoolean
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7408
    ignoreUntilShiftKeyPressed := aBoolean.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7409
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7410
    "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
  7411
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7412
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7413
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'misc'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7414
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7415
decrementIgnoreCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7416
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7417
        ignoreCount > 0 ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7418
            ignoreCount := ignoreCount - 1
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7419
        ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7420
    ]
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7421
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7422
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7423
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7424
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7425
printConditionOn:aStream
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7426
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7427
        aStream nextPutAll:' until shiftKey pressed'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7428
    ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7429
        ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7430
            aStream nextPutAll:' until '.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7431
            ignoreEndTime printOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7432
        ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7433
            (ignoreCount > 0) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7434
                aStream nextPutAll:' for '.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7435
                ignoreCount printOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7436
            ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7437
                (ignoreCount < 0) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7438
                    aStream nextPutAll:' forEver'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7439
                ] ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7440
                    aStream nextPutAll:' no longer'.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7441
                ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7442
            ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7443
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7444
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7445
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7446
    "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
  7447
    "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
  7448
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7449
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7450
!DebugView::IgnoredHaltOrBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7451
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7452
haltIgnoredInfoString
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7453
    "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
  7454
     nil if not ignored"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7455
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7456
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7457
        ignoreCount > 0 ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7458
            ^ '%1 more calls ignored' bindWith:ignoreCount
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7459
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7460
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7461
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7462
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7463
        (ignoreEndTime > Timestamp now) ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7464
            ^ 'ignored until %1' bindWith:ignoreEndTime
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7465
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7466
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7467
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7468
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7469
        Display shiftDown ifFalse:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7470
            ^ 'ignored until shiftKey is pressed'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7471
        ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7472
        ^ nil
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7473
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7474
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7475
    ^ 'ignored until reenabled'
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7476
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7477
    "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
  7478
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7479
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7480
isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7481
    "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
  7482
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7483
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7484
        ^ ignoreEndTime > Timestamp now
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7485
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7486
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7487
        ^ ignoreCount > 0
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7488
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7489
    ^ false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7490
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7491
    "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
  7492
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7493
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7494
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7495
    ^ false
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7496
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7497
    "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
  7498
    "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
  7499
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7500
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7501
isForBreakpointWithParameter:paramArg
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7502
    ^ false
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7503
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7504
    "Modified: / 27-01-2012 / 11:36:01 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7505
    "Created: / 06-03-2012 / 14:36:28 / cg"
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7506
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7507
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7508
isHaltIgnored
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7509
    "true if this halt should be ignored"
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7510
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7511
    ignoreUntilShiftKeyPressed == true ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7512
        ^ Display shiftDown not
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7513
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7514
    ignoreCount notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7515
        ^ ignoreCount > 0
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7516
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7517
    ignoreEndTime notNil ifTrue:[
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7518
        ^ ignoreEndTime > Timestamp now
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7519
    ].
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7520
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7521
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7522
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7523
    "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
  7524
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7525
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7526
!DebugView::IgnoredHalt methodsFor:'accessing'!
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7527
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7528
method
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7529
    |m|
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7530
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7531
    weakMethodHolder == #all ifTrue:[^ weakMethodHolder ].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7532
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7533
    m := weakMethodHolder at:1.
9796
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7534
"/ 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
  7535
"/
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7536
"/    m notNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7537
"/        m mclass isNil ifTrue:[
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7538
"/            "/ no longer valid
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7539
"/            weakMethodHolder at:1 put:nil.
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7540
"/            ^ nil
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7541
"/        ].
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7542
"/    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7543
    ^ m
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7544
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7545
    "Modified: / 08-05-2011 / 10:28:10 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7546
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7547
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7548
method:methodArg lineNumber:lineNumberArg
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7549
    "/ self assert:(methodArg mclass notNil).
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7550
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7551
    methodArg == #all ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7552
        weakMethodHolder := methodArg
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7553
    ] ifFalse:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7554
        weakMethodHolder := WeakArray with:methodArg.
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7555
    ].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7556
    lineNumber := lineNumberArg.
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7557
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7558
    "Modified: / 08-05-2011 / 10:28:41 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7559
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7560
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7561
!DebugView::IgnoredHalt methodsFor:'printing'!
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7562
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7563
printOn:aStream
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7564
    |method|
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7565
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7566
    (method := self method) isNil ifTrue:[
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7567
        aStream nextPutAll:'an obsolete IgnoredHalt'.
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7568
        ^ self
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7569
    ].
9590
41587c52f59c fixed ignoring halts for breakPoints
Claus Gittinger <cg@exept.de>
parents: 9586
diff changeset
  7570
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7571
    aStream nextPutAll:'Ignore '.
11210
83e08cc8ce48 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11209
diff changeset
  7572
    method whoString printOn:aStream.
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7573
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7574
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7575
    "Modified: / 06-03-2012 / 12:41:19 / cg"
9093
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7576
! !
afeec57f277e generate a change notification when ignore-halts changes
Claus Gittinger <cg@exept.de>
parents: 9078
diff changeset
  7577
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7578
!DebugView::IgnoredHalt methodsFor:'queries'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7579
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7580
isActive
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7581
    "true if this ignore-entry is still active"
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7582
9796
f806d9db4e94 ignoring halts changed
Claus Gittinger <cg@exept.de>
parents: 9750
diff changeset
  7583
    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
  7584
    ^ super isActive
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7585
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7586
    "Modified: / 06-03-2012 / 12:40:20 / cg"
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7587
!
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7588
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7589
isForMethod:aMethod line:line
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7590
    "/ check in this order - method has a flushing side-effect, which is useful here...
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7591
    weakMethodHolder == #all ifTrue:[^ true].
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7592
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7593
    ^ (aMethod = self method) and:[ line = lineNumber ].
9922
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7594
Claus Gittinger <cg@exept.de>
parents: 9796
diff changeset
  7595
    "Modified: / 08-05-2011 / 10:27:31 / cg"
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7596
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7597
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7598
isHaltIgnoredInMethod:aMethod line:line
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
  7599
    "/ 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
  7600
9094
51cf41fd65a2 added: #removeInactiveIgnores
Claus Gittinger <cg@exept.de>
parents: 9093
diff changeset
  7601
    (self isForMethod:aMethod line:line) ifFalse:[^ false].
9095
68d06ebf349b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9094
diff changeset
  7602
    "/ Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7603
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7604
    ^ self isHaltIgnored
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7605
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  7606
11366
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7607
!DebugView::IgnoredBreakpoint methodsFor:'accessing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7608
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7609
parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7610
    ^ parameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7611
!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7612
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7613
parameter:something
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7614
    parameter := something.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7615
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7616
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7617
!DebugView::IgnoredBreakpoint methodsFor:'printing'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7618
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7619
printOn:aStream
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7620
    aStream nextPutAll:'Ignore breakpoint:#', parameter.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7621
    self printConditionOn:aStream.
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7622
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7623
    "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
  7624
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7625
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7626
!DebugView::IgnoredBreakpoint methodsFor:'queries'!
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7627
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7628
isForBreakpointWithParameter
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7629
    ^ true
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7630
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7631
    "Created: / 06-03-2012 / 12:54:35 / cg"
11367
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7632
!
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7633
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7634
isForBreakpointWithParameter:paramArg
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7635
    ^ paramArg = parameter
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7636
bd0402b6421a changed: #isBreakpointToBeIgnoredForParameter:modifyEntryCount:
Claus Gittinger <cg@exept.de>
parents: 11366
diff changeset
  7637
    "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
  7638
! !
d57e42f65841 allow for code breakpoints (breakpoint:#param) to
Claus Gittinger <cg@exept.de>
parents: 11364
diff changeset
  7639
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7640
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7641
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  7642
version
11443
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  7643
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.538 2012-03-19 16:41:24 cg Exp $'
11304
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  7644
!
d142697b6c1e changed: #browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 11303
diff changeset
  7645
8952
7742c63ff6f5 catch halts in: #showSelection:
Claus Gittinger <cg@exept.de>
parents: 8745
diff changeset
  7646
version_CVS
11443
6e83697ab8c9 changed: #menuSpec
Claus Gittinger <cg@exept.de>
parents: 11391
diff changeset
  7647
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.538 2012-03-19 16:41:24 cg Exp $'
10628
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7648
!
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7649
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7650
version_SVN
Claus Gittinger <cg@exept.de>
parents: 10289
diff changeset
  7651
    ^ '§Id: DebugView.st 7818 2011-08-18 11:42:39Z vranyj1 §'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7652
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7653
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  7654
DebugView initialize!