DebugView.st
author Claus Gittinger <cg@exept.de>
Thu, 05 Jun 2008 13:25:30 +0200
changeset 8180 b261a7df4412
parent 8179 79462318090d
child 8181 9ad0a9569a01
permissions -rw-r--r--
*** empty log message ***
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
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
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
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    15
	instanceVariableNames:'busy haveControl exitAction canContinue contextView codeView
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    16
		receiverInspector contextInspector contextArray selectedContext
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
    17
		catchBlock grabber mayProceed traceView tracing bigStep
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
    18
		skipLineNr steppedContextAddress abortButton terminateButton
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
    19
		continueButton stepButton nextButton nextOverButton nextOutButton
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
    20
		sendButton returnButton restartButton exclusive inspecting
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
    21
		nChainShown inspectedProcess updateProcess stopButton
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
    22
		updateButton defineButton monitorToggle stepping
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
    23
		steppedContextLineno stepForReturn actualContext inWrap
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
    24
		stackInspector steppedContext wrapperContext verboseBacktrace
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
    25
		firstContext stepHow cachable currentMethod ignoreBreakpoints
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
    26
		stepUntilEntering lastStepUntilEntering
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
    27
		lastSelectionInReceiverInspector lastSelectionInContextInspector
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    28
		canShowMore exitAbort reportButton setOfHiddenCallingSelectors
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    29
		isStoppedAtHaltOrBreakPoint'
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    30
	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
    31
		DebuggingDebugger DefaultDebuggerBackgroundColor
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    32
		InitialNChainShown IgnoredHalts'
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    33
	poolDictionaries:''
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    34
	category:'Interface-Debugger'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    35
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    36
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    37
Object subclass:#IgnoredHalt
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
    38
	instanceVariableNames:'methodHolder method lineNumber ignoreEndTime ignoreCount'
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    39
	classVariableNames:''
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    40
	poolDictionaries:''
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    41
	privateIn:DebugView
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    42
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
    43
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    44
!DebugView class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    45
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    46
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    47
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    48
 COPYRIGHT (c) 1989 by Claus Gittinger
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    49
              All Rights Reserved
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    50
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    51
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    52
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    53
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    54
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    55
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    56
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    57
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    58
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    59
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    60
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    61
"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    62
    This class implements a graphical debugger interface.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    63
    The debugger usually sits on top of the faulting process,
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    64
    taking over its event processing. 
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    65
    (this is different from other Smalltalk debuggers, which control
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    66
     the debuggee as a separate process. Consider this an historic
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    67
     leftover - the debugger was one of the first applications written for
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    68
     ST/X; however, why should we change it without a particular need ...).
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    69
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    70
    Only the 'stopped' debugged process is affected;
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    71
    other processes continue to respond to events.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    72
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    73
    The one exception is when an error occurs within the dispatcher process
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    74
    or in one of the eventhandler processes - in this case, the debugger
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    75
    will sit on an exclusive display connection.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    76
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    77
    The whole debugging will be changed, once the required process primitives
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    78
    are available, which allow control of another processes execution
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    79
    (i.e. single-step, restart & return). The setup will be changed then,
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    80
    to have the debugger control the debuggee (i.e. two processes)
35
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    81
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    82
    See additional information in 'doc/misc/debugger.doc'.
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    83
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    84
    Notice: the DebugView class caches the last used debugger in a class
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    85
    variable. It may happen, that a malfunctioning debugger (for example,
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    86
    a halfway destroyed one) is kept there. You will notice this, if a
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    87
    debugger comes up without showing any contents. In this case, close
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    88
    (or destroy) the broken debugView, and execute
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    89
        Debugger newDebugger
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    90
    which removes the cached debugger and forces creation of a new one the
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    91
    next time. This is a temporary workaround - the debugger will be fixed to
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    92
    avoid this problem.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    93
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    94
    [author:]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    95
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    96
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    97
    [see also:]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    98
        Exception Signal
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    99
        Process
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   100
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   101
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   102
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   103
!DebugView class methodsFor:'initialization'!
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   104
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   105
initialize
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   106
    InitialNChainShown := 20.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   107
    "/ DefaultDebuggerBackgroundColor := nil.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   108
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   109
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   110
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   111
    "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
   112
    "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
   113
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   114
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   115
reinitialize
7822
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   116
    "reinitialize after an image-restart"
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   117
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   118
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   119
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   120
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   121
!DebugView class methodsFor:'instance creation'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   122
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   123
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   124
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   125
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   126
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   127
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   128
    self enter:thisContext sender withMessage:'debugger entered' mayProceed:true.
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   129
!
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   130
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   131
enter:aContext withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   132
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   133
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   134
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   135
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   136
    ^ self
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   137
        enter:aContext 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   138
        withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   139
        mayProceed:true
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   140
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   141
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   142
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   143
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   144
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   145
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   146
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   147
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   148
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   149
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
   150
    |active|
93
claus
parents: 92
diff changeset
   151
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
   152
    StepInterruptPending := nil.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   153
    ControlInterrupt handle:[:ex |
4676
c809ebc38db9 more info on an ignored breakpoint
Claus Gittinger <cg@exept.de>
parents: 4644
diff changeset
   154
        'DebugView [info]: breakpoint in debugger setup ignored [enter.]' infoPrintCR.
c809ebc38db9 more info on an ignored breakpoint
Claus Gittinger <cg@exept.de>
parents: 4644
diff changeset
   155
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   156
        ex proceed
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   157
    ] do:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   158
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   159
         well, it could be a stepping or sending debugger up there;
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   160
         in this case, return to it. This happens, when a stepping process
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   161
         runs into an error (for example, a halt). In this case, we want the
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   162
         stepping debugger to come up again instead of a new one.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   163
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   164
        OpenDebuggers notNil ifTrue:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   165
            active := Processor activeProcess.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   166
            OpenDebuggers do:[:aDebugger |
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   167
                (aDebugger inspectedProcess == active) ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   168
                    aDebugger device isOpen ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   169
                        "/ 'entering stepping debugger again' printNL.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   170
                        aDebugger unstep.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   171
                        aDebugger setLabelFor:aString in:active.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   172
                        aDebugger mayProceed:mayProceed.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   173
                        ^ aDebugger enter:aContext select:nil.
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   174
                    ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   175
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   176
            ]
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   177
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   178
    ].
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   179
    ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   180
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   181
    "Modified: / 18.11.2001 / 00:48:03 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   182
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   183
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   184
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   185
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   186
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   187
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   188
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   189
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   190
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   191
    StepInterruptPending := nil.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   192
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   193
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   194
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   195
    ControlInterrupt handle:[:ex |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   196
        'DebugView [info]: breakpoint in debugger setup ignored [enterUncond.]' infoPrintCR.
4676
c809ebc38db9 more info on an ignored breakpoint
Claus Gittinger <cg@exept.de>
parents: 4644
diff changeset
   197
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   198
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   199
    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   200
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   201
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   202
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   203
    aDebugger isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   204
        'DebugView [error]: cannot open debugger' errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   205
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   206
        mayProceed ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   207
            (Dialog confirm:'Error/Breakpoint cought.\\Press Continue or Abort.' withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   208
                   yesLabel:'Continue' noLabel:'Abort')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   209
            ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   210
                ^ nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   211
            ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   212
        ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   213
            self information:'Error cought.\\Press OK to abort the operation.' withCRs.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   214
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   215
        AbortOperationRequest raise.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   216
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   217
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   218
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   219
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   220
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   221
    aDebugger enter:aContext select:nil.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   222
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   223
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   224
    "
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   225
        nil halt
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   226
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   227
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   228
    "Modified: / 18.11.2001 / 00:29:23 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   229
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   230
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   231
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   232
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   233
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   234
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   235
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   236
    self enter:(thisContext sender) withMessage:message mayProceed:true.
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   237
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   238
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   239
new
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   240
    "return a new DebugView. 
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   241
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   242
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   243
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   244
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   245
    |debugger currentScreen debuggerDevice|
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   246
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   247
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   248
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   249
    currentScreen notNil ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   250
        (currentScreen suppressDebugger) ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   251
            "/ no debuggers with that device - show an alertBox which aborts...
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   252
            ^ nil.
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   253
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   254
        (currentScreen mayOpenDebugger) ifFalse:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   255
            "/ no debugger on that device - but on the main screen
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   256
            currentScreen := Screen default.
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   257
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   258
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   259
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   260
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   261
     need a blocking debugger if no processes or 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   262
     or if its a timing/interrupt process 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   263
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   264
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   265
    Processor activeProcessIsSystemProcess ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   266
        ((debugger := CachedExclusive) isNil 
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   267
        or:[debugger device ~~ currentScreen
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   268
        or:[currentScreen isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   269
        or:[currentScreen isOpen not]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   270
            debugger := self newExclusive
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   271
        ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   272
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   273
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   274
        CachedDebugger notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   275
            (CachedDebugger device ~~ currentScreen 
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   276
            or:[currentScreen isNil
7981
658dac13ed05 cache only my real instances (not sub-instances)
Claus Gittinger <cg@exept.de>
parents: 7971
diff changeset
   277
            or:[currentScreen isOpen not
658dac13ed05 cache only my real instances (not sub-instances)
Claus Gittinger <cg@exept.de>
parents: 7971
diff changeset
   278
            or:[CachedDebugger class ~~ self]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   279
                CachedDebugger := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   280
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   281
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   282
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   283
        (debugger := CachedDebugger) notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   284
            CachedDebugger := nil.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   285
        ] ifFalse:[
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   286
            debuggerDevice := currentScreen.
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   287
            debuggerDevice isNil ifTrue:[
2352
a1fd9c17f18a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   288
                "/ use the default display
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   289
                debuggerDevice := Screen default.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   290
            ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   291
            (debuggerDevice isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   292
            or:[debuggerDevice isOpen not
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   293
            "/ or:[debuggerDevice mayOpenDebugger not]
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   294
            ]) ifTrue:[
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   295
                "/ no debugger
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   296
                ^ nil.
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   297
            ].
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   298
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   299
            Screen currentScreenQuerySignal answer:debuggerDevice
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   300
            do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   301
                debugger := super new.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   302
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   303
            debugger label:'Debugger'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   304
            debugger icon:self defaultIcon.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   305
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   306
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   307
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   308
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   309
    "Modified: 31.7.1997 / 21:20:27 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   310
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   311
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   312
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   313
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   314
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   315
    |debugger|
105
claus
parents: 101
diff changeset
   316
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   317
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   318
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   319
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   320
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   321
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   322
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   323
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   324
!
claus
parents: 101
diff changeset
   325
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   326
openOn:aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   327
    "start a  debugger on aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   328
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   329
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   330
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   331
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   332
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   333
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   334
    aProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   335
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   336
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   337
            nm := (nm contractTo:17) , '-' , aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   338
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   339
            nm := aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   340
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   341
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   342
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   343
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   344
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   345
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   346
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   347
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   348
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   349
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
   350
! !
claus
parents: 124
diff changeset
   351
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   352
!DebugView class methodsFor:'cleanup'!
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   353
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   354
lowSpaceCleanup 
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   355
    "in low memory situations, give up cached debuggers"
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   356
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   357
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   358
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   359
    OpenDebuggers := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   360
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   361
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   362
     DebugView lowSpaceCleanup
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   363
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   364
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   365
    "Modified: 18.4.1996 / 16:48:03 / cg"
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   366
!
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   367
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   368
newDebugger
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   369
    "force creation of a new debugger (give up cached debuggers)"
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   370
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   371
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   372
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   373
    OpenDebuggers := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   374
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   375
    (Debugger isBehavior and:[Debugger name = #DebugView]) ifTrue:[
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   376
        Debugger := self
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   377
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   378
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   379
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   380
     DebugView newDebugger
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   381
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   382
! !
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   383
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   384
!DebugView class methodsFor:'defaults'!
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   385
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   386
defaultIcon
7632
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   387
    "return the browsers default window icon"
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   388
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   389
    <resource: #programImage>
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   390
7647
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   391
    ^ ToolbarIconLibrary debug22x22Icon    
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   392
    "/ ^ ToolbarIconLibrary debugIt20x20Icon
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   393
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   394
    "Modified: / 11-02-2007 / 11:47:20 / cg"
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   395
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   396
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   397
defaultVerboseBacktrace
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   398
    <resource: #obsolete>
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   399
    self obsoleteMethodWarning.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   400
    ^ UserPreferences current verboseBacktraceInDebugger
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   401
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   402
    "Created: 11.1.1997 / 12:14:35 / cg"
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   403
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   404
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   405
defaultVerboseBacktrace:aBoolean
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   406
    <resource: #obsolete>
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   407
    self obsoleteMethodWarning.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   408
    UserPreferences current verboseBacktraceInDebugger:aBoolean
3441
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   409
!
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   410
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   411
updateStyleCache
6136
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   412
    "extract values from the styleSheet and cache them in class variables"
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   413
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   414
    <resource: #style (#'debugView.viewBackgroundColor')>
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   415
3441
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   416
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   417
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   418
    "Modified: / 17.11.2001 / 17:31:42 / cg"
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   419
! !
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   420
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   421
!DebugView class methodsFor:'ignoring halts'!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   422
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   423
hasIgnoredHalts
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   424
    ^ IgnoredHalts notEmptyOrNil
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   425
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   426
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   427
stopIgnoringHalts
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   428
    IgnoredHalts := nil
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   429
! !
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   430
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   431
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   432
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   433
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   434
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   435
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   436
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   437
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   438
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   439
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   440
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   441
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   442
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   443
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   444
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   445
    <resource: #menu>
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   446
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   447
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   448
     #(Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   449
        (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   450
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   451
            label: 'View'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   452
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   453
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   454
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   455
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   456
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   457
                  enabled: canShowMore
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   458
                  label: 'Show More WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   459
                  itemValue: showMore
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   460
                  translateLabel: true
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   461
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   462
               (MenuItem
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   463
                  label: 'Show Verbose WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   464
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   465
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   466
                  isVisible: showingDenseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   467
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   468
               (MenuItem
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   469
                  label: 'Show Dense WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   470
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   471
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   472
                  isVisible: showingVerboseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   473
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   474
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   475
                  label: '-'
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   476
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   477
               (MenuItem
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   478
                  label: 'Raise Debugger when Entering'
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   479
                  itemValue: autoRaiseView:
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   480
                  translateLabel: true
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   481
                  indication: autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   482
                )
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   483
               (MenuItem
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   484
                  label: '-'
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   485
                )
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   486
               (MenuItem
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   487
                  label: 'Exit'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   488
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   489
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   490
                  isVisible: isInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   491
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   492
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   493
                  label: 'Close Debugger and Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   494
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   495
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   496
                  isVisible: isNotInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   497
                )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   498
               )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   499
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   500
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   501
            )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   502
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   503
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   504
            label: 'Process'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   505
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   506
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   507
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   508
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   509
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   510
                  label: 'Continue'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   511
                  itemValue: doContinue
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   512
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   513
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   514
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   515
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   516
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   517
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   518
                  label: 'Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   519
                  itemValue: doAbort
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   520
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   521
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   522
               (MenuItem
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   523
                  enabled: abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   524
                  label: 'Abort All'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   525
                  itemValue: doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   526
                  translateLabel: true
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   527
                )
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   528
               (MenuItem
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   529
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   530
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   531
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   532
                  label: 'Terminate'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   533
                  itemValue: doTerminate
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   534
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   535
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   536
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   537
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   538
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   539
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   540
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   541
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   542
            label: 'Context'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   543
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   544
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   545
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   546
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   547
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   548
                  enabled: canReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   549
                  label: 'Return'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   550
                  itemValue: doReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   551
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   552
                )
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   553
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   554
                  enabled: canRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   555
                  label: 'Restart'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   556
                  itemValue: doRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   557
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   558
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   559
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   560
                  label: '-'
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   561
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   562
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   563
                  enabled: hasContextSelected
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   564
                  label: 'Inspect'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   565
                  itemValue: inspectContext
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   566
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   567
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   568
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   569
                  label: 'Copy WalkBack Text'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   570
                  itemValue: copyWalkbackText
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   571
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   572
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   573
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   574
                  label: 'Bookmark Method in SystemBrowser'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   575
                  itemValue: addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   576
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   577
                )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   578
               )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   579
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   580
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   581
            )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   582
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   583
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   584
            label: 'Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   585
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   586
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   587
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   588
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   589
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   590
                  enabled: canBrowseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   591
                  label: 'Browse Implementing Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   592
                  itemValue: browseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   593
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   594
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   595
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   596
                  enabled: canBrowseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   597
                  label: 'Browse Receivers Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   598
                  itemValue: browseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   599
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   600
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   601
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   602
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   603
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   604
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   605
                  enabled: canBrowseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   606
                  label: 'Browse Receivers Class Hierarchy'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   607
                  itemValue: browseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   608
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   609
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   610
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   611
                  enabled: canBrowseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   612
                  label: 'Browse Receivers Full Protocol'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   613
                  itemValue: browseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   614
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   615
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   616
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   617
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   618
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   619
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   620
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   621
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   622
            label: 'Selector'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   623
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   624
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   625
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   626
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   627
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   628
                  label: 'Browse Implementors...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   629
                  itemValue: browseImplementorsOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   630
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   631
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   632
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   633
                  label: 'Browse Senders...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   634
                  itemValue: browseSendersOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   635
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   636
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   637
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   638
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   639
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   640
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   641
                  enabled: canDefineMethod
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   642
                  label: 'Define Missing Method'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   643
                  itemValue: doDefineMethod
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   644
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   645
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   646
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   647
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   648
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   649
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   650
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   651
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   652
            label: 'Breakpoint'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   653
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   654
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   655
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   656
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   657
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   658
                  enabled: canRemoveBreakpoint
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   659
                  label: 'Remove Breakpoint'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   660
                  itemValue: removeBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   661
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   662
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   663
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   664
                  label: 'Remove all Breakpoints'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   665
                  itemValue: removeAllBreakpoints
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   666
                  translateLabel: true
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   667
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   668
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   669
                  label: '-'
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   670
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   671
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   672
                  enabled: canAddBreakpoint
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   673
                  label: 'Add Breakpoint'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   674
                  itemValue: addBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   675
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   676
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   677
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   678
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   679
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   680
               (MenuItem
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   681
                  label: 'Ignore this Halt/BreakPoint'
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   682
                  translateLabel: true
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   683
                  submenu: 
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   684
                 (Menu
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   685
                    (
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   686
                     (MenuItem
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
   687
                        enabled: isStoppedAtHaltOrBreakPoint
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   688
                        label: 'Forever (Until Ignoring is Stopped)'
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   689
                        itemValue: ignoreHaltForever
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   690
                        translateLabel: true
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   691
                      )
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   692
                     (MenuItem
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
   693
                        enabled: isStoppedAtHaltOrBreakPoint
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   694
                        label: 'For the Next N Times...'
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   695
                        itemValue: openIgnoreHaltNTimesDialog
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   696
                        translateLabel: true
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   697
                      )
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
   698
                     (MenuItem
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   699
                        enabled: isStoppedAtHaltOrBreakPoint
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   700
                        label: 'For Some Time...'
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   701
                        itemValue: openIgnoreHaltUntilTimeElapsedDialog
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
   702
                        translateLabel: true
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
   703
                      )
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   704
                     )
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   705
                    nil
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   706
                    nil
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   707
                  )
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
   708
                )
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   709
               (MenuItem
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   710
                  enabled: hasHaltsToIgnore
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   711
                  label: 'Stop Ignoring'
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   712
                  itemValue: stopIgnoringHalts
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   713
                  translateLabel: true
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   714
                )
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   715
               (MenuItem
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   716
                  label: '-'
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   717
                )
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   718
               (MenuItem
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   719
                  label: 'Allow Breakpoints in Debugger'
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   720
                  itemValue: allowBreakPointsInDebugger:
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   721
                  translateLabel: true
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   722
                  indication: allowBreakPointsInDebugger
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
   723
                )
3269
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
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   726
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   727
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   728
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   729
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   730
            label: 'Help'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   731
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   732
            startGroup: right
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   733
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   734
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   735
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   736
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   737
                  label: 'Debuggers Documentation'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   738
                  itemValue: openHTMLDocument:
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   739
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   740
                  argument: 'tools/debugView/TOP.html'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   741
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   742
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   743
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   744
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   745
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   746
                  label: 'About DebugView...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   747
                  itemValue: openAboutThisApplication
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   748
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   749
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   750
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   751
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   752
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   753
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   754
          )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   755
         )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   756
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   757
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   758
      )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   759
! !
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   760
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   761
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   762
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
   763
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   764
    "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
   765
     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
   766
     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
   767
     actually occured.
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   768
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   769
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   770
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   771
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   772
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   773
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   774
    idx := 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   775
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[        
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   776
        someContexts at:idx put:con.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   777
        con := con sender.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   778
        idx := idx + 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   779
    ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   780
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   781
    ^ someContexts at:idx.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   782
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   783
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   784
interestingContextIndexIn:aContextArray 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   785
    "return an interesting contexts offset, or nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   786
     This is the context initially shown in the walkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   787
     We move up the calling chain, skipping all intermediate Signal
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   788
     and Exception contexts, to present the context in which the error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   789
     actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   790
     Just for your convenience :-)"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   791
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   792
    |con found offset sel prev ex rcvr nMax idx|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   793
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
   794
"/ Transcript showCR:aContextArray.
7648
acfbc051149f *** empty log message ***
ca
parents: 7647
diff changeset
   795
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   796
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   797
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   798
    con := aContextArray at:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   799
    con isBlockContext ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   800
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   801
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   802
    "/ find the exception
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   803
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   804
    1 to:5 do:[:i |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   805
        con := aContextArray at:i ifAbsent:nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   806
        con notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   807
            sel := con selector.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   808
            (sel startsWith:'raise') ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   809
                rcvr := con receiver.
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   810
                (rcvr isLazyValue not and:[rcvr isException]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   811
                    ex := rcvr.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   812
                    offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   813
                    found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   814
                ] ifFalse:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   815
                    (rcvr isLazyValue not and:[rcvr isExceptionCreator]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   816
                        offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   817
                        found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   818
                    ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   819
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   820
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   821
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   822
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   823
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   824
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   825
     if this is a noHandler exception, skip forward
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   826
     to the erronous context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   827
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   828
    ex notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   829
        ex signal == Signal noHandlerSignal ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   830
            found := ex suspendedContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   831
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   832
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   833
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   834
    found isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   835
        "/ this is a kludge, but convenient.
6579
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   836
        "/ show the place where the error (divisionByZero...) happend,
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   837
        "/ not where the signal was raised.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   838
        con := (aContextArray at:1).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   839
        sel := con methodHome selector.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   840
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   841
        "/ typically a DivisionByZero - show caller of division
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   842
        (sel == #//      
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   843
        or:[sel == #/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   844
        or:[sel == #\\]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   845
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   846
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   847
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   848
        "/ show the place of the bad message; not where the Signal was raised...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   849
        (sel == #doesNotUnderstand:) ifTrue:[
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   850
            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   851
                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   852
                sel == #doesNotUnderstand: ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   853
                    ^ 4
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   854
                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   855
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   856
            ^ 3 min:nMax
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   857
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   858
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   859
        "/ show the bad method; not where the Signal was raised...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   860
        (sel == #noByteCode) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   861
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   862
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   863
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   864
"/        "/ 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
   865
"/        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   866
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   867
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   868
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   869
"/        "/ 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
   870
"/        (sel == #shouldImplement) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   871
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   872
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   873
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   874
"/        "/ 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
   875
"/        ((sel == #error:mayProceed:)
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   876
"/        or:[ sel == #signalFailure:resumable:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   877
"/            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   878
"/                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   879
"/                sel == #mustBeBoolean ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   880
"/                    ^ 3
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   881
"/                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   882
"/            ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   883
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   884
"/        ].
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   885
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   886
        "/ show the place of signalInterrupt-call; not where the Signal was raised...
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   887
        (sel == #signalInterrupt:) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   888
            ^ 2
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   889
        ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   890
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   891
"/        "/ 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
   892
"/        ((sel == #error) or:[sel == #error:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   893
"/            con method mclass == Object ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   894
"/                ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   895
"/            ]
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   896
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   897
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   898
"/        "/ 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
   899
"/        (sel == #subclassResponsibility) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   900
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   901
"/        ].
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   902
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   903
        "/ show the place of the bad index; not where the Signal was raised...
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   904
        ( #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   905
            #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   906
            #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   907
            #elementBoundsError:
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   908
            "/ #subclassResponsibility
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   909
        ) includes:sel) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   910
            idx := 2.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   911
            [ idx <= 3 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   912
                and:[ 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   913
                    sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   914
                    #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   915
                      #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   916
                      #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   917
                      #elementBoundsError: ) includes:sel
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   918
                ]
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   919
            ] whileTrue:[ idx := idx + 1 ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   920
            sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   921
            (nMax > idx and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel]) 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   922
            ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   923
                sel := (aContextArray at:idx+1) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   924
                (nMax > (idx+1) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel])
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   925
                ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   926
                    sel := (aContextArray at:idx+2) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   927
                    (nMax > (idx+2) and:[ #(#basicAt: #basicAt:put: #at: #at:put: ) includes:sel]) 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   928
                    ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   929
                        ^ idx+3
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   930
                    ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   931
                    ^ idx+2
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   932
                ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   933
                ^ idx+1
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   934
            ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   935
            ^ idx
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   936
        ].
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   937
        offset := 1.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   938
    ].
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   939
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   940
    "/ the above is all too hard-coded;
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   941
    "/ 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
   942
    "/ as more methods get flagged, remove code from above.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   943
    con := aContextArray at:offset ifAbsent:nil.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   944
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   945
    [ 
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   946
      con notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   947
      and:[ con methodHome notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   948
      and:[ con methodHome method notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   949
      and:[ con methodHome method shouldBeSkippedInDebuggersWalkBack ]]]
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   950
    ] whileTrue:[
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   951
"/ Transcript showCR:con methodHome method.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   952
        offset := offset + 1.
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   953
        con := aContextArray at:offset ifAbsent:nil.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   954
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   955
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   956
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   957
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   958
     Exception contexts
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   959
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   960
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   961
    rcvr := con receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   962
    [   
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   963
        rcvr isLazyValue not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   964
    ] whileTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   965
        prev := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   966
        nMax > offset ifFalse:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   967
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   968
        offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   969
        con := aContextArray at:offset.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   970
        rcvr := con receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   971
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   972
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   973
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   974
     now, we are one above the raising context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   975
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   976
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   977
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   978
     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
   979
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   980
    ( #( halt halt: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   981
         error error: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   982
         doesNotUnderstand: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   983
         subclassResponsibility 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   984
         primitiveFailed) includes:con selector) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   985
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   986
        con selector == #doesNotUnderstand: ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   987
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   988
             one more up, to get to the originating context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   989
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   990
            con := aContextArray at:(offset + 1).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   991
            con isNil ifTrue:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   992
            offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   993
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   994
        con := aContextArray at:(offset + 1).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   995
        con isNil ifTrue:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   996
        offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   997
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   998
        "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   999
         ok, got the raise - if its a BreakPoint, look for the sender
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1000
        "
8154
d755b646fc9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8152
diff changeset
  1001
        (prev notNil and:[prev receiver == BreakPointInterrupt]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1002
            offset := offset + 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1003
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1004
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1005
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1006
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1007
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
  1008
    "Created: / 17-11-2001 / 20:37:49 / cg"
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
  1009
    "Modified: / 15-10-2007 / 16:50:27 / cg"
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1010
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
  1011
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1012
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1013
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1014
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1015
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1016
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1017
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1018
    m notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1019
        self updateMenuItems.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1020
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1021
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1022
            abortButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1023
            m enable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1024
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1025
            abortButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1026
            m disable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1027
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1028
        exclusive ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1029
            terminateButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1030
            m disable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1031
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1032
            terminateButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1033
            m enable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1034
        ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1035
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1036
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1037
    mayProceed == false ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1038
        continueButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1039
        m notNil ifTrue:[m disable:#doContinue].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1040
    ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1041
        continueButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1042
        m notNil ifTrue:[m enable:#doContinue]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1043
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1044
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1045
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1046
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1047
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  1048
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1049
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1050
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1051
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1052
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1053
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1054
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext haltingMethod lineNrInHaltingMethod
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1055
     c|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1056
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1057
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1058
        '==> enter: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1059
        ') select: ' print. initialSelectionOrNil printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1060
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1061
    thisContext isRecursive ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1062
        "/ care for the special case, were the Debugger was autoloaded.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1063
        "/ in this case, thisContext IS recursive, but thats no error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1064
        "/ condition.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1065
        foundNoByteCodeContext := false.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1066
        foundExitContext := false.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1067
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1068
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1069
        [
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1070
         foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1071
         and:[ foundExitContext not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1072
         and:[c notNil 
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1073
         and:[c selector ~~ #enter:withMessage:mayProceed:
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1074
        ]]]]
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1075
        whileTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1076
            c selector == #exit_unwindThenDo: ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1077
                foundExitContext := true
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1078
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1079
            c selector == #noByteCode ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1080
                foundNoByteCodeContext := true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1081
            ].
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1082
            c := c findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1083
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1084
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1085
        (foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1086
        and:[ foundExitContext not]) ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1087
            ('DebugView [warning]: reentered') errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1088
        
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1089
            ^ MiniDebugger 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1090
                enter:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1091
                withMessage:'DebugView [error]: recursive error (in debugger)'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1092
                mayProceed:mayProceed.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1093
        ].
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1094
        foundExitContext ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1095
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1096
            ^ self.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1097
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1098
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1099
2591
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1100
"/'entering: ' print. aContext printCR.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1101
"/'initial: ' print. initialSelectionOrNil printCR.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1102
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1103
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1104
    "/ should a halt be ignored ?
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1105
    IgnoredHalts notNil ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1106
        c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  1107
        c isNil ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  1108
            c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  1109
        ].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1110
        c notNil ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1111
            c := c sender.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1112
            haltingMethod := c method.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1113
            lineNrInHaltingMethod := c lineNumber.
8180
b261a7df4412 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8179
diff changeset
  1114
"/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1115
            IgnoredHalts do:[:ign | 
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1116
                (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
8180
b261a7df4412 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8179
diff changeset
  1117
Transcript showCR:'Debugger: ignored halt in ', haltingMethod printString.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1118
                    ign decrementIgnoreCount.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1119
                    ign isHaltIgnored ifFalse:[
8180
b261a7df4412 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8179
diff changeset
  1120
Transcript showCR:'Debugger: no longer ignore halt in ', haltingMethod printString.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1121
                        IgnoredHalts remove:ign ifAbsent:[].    
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1122
                    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1123
                    ^ self.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1124
                ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1125
            ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1126
            IgnoredHalts do:[:ign | 
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  1127
                (ign method isNil
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  1128
                or:[ ign isForMethod:haltingMethod line:lineNrInHaltingMethod ]) ifTrue:[
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1129
                    IgnoredHalts remove:ign ifAbsent:[].    
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1130
                ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1131
            ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1132
        ]
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1133
    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  1134
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1135
    iAmNew := drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1136
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1137
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1138
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1139
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1140
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1141
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1142
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1143
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1144
    stepHow := nil.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1145
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1146
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1147
    "/ if debugger is entered while a box has grabbed the
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1148
    "/ pointer, we must ungrab - otherwise X wont talk to us here.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1149
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1150
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1151
    "/ 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
  1152
    "/    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
  1153
    "/    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
  1154
    Screen allScreens do:[:aScreen |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1155
        aScreen ungrabPointer.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1156
        aScreen ungrabKeyboard.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1157
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1158
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1159
    ("inspectedProcess suspendedContext isNil 
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  1160
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1161
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1162
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1163
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1164
        terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1165
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1166
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1167
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1168
    iAmNew ifFalse:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1169
        "/ not the first time - disable buttons & menus
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1170
        "/ from the previous life
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1171
        self turnOffAllButtons.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1172
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1173
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1174
        m notNil ifTrue:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1175
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1176
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1177
        verboseBacktrace 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1178
            ifTrue:[self showVerboseWalkback]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1179
            ifFalse:[self showDenseWalkback].
132
claus
parents: 127
diff changeset
  1180
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1181
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  1182
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1183
    windowGroup isNil ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1184
        self windowGroup: WindowGroup new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1185
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1186
    ].
132
claus
parents: 127
diff changeset
  1187
    exclusive ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1188
        "/ create a (modal) windowGroup for myself
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1189
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1190
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1191
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1192
        "/ create a windowGroup with a synchronous sensor for me
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1193
3769
3c6e68ee0593 dont access the windowGroups sensor directly
penk
parents: 3723
diff changeset
  1194
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1195
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1196
    windowGroup setProcess:Processor activeProcess.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1197
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1198
     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
  1199
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1200
    self setContext:aContext releaseInspectors:(exitAction ~~ #step).
2591
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1201
"/'after setContext; first is ' print.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1202
"/(contextArray at:1 ifAbsent:nil) printCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1203
    self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1204
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1205
    m := contextView middleButtonMenu.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1206
    m notNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1207
        self updateMenuItems.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1208
5821
a5ef70570c6c Check for AbortOperationRequest in suspendedContext.
Stefan Vogel <sv@exept.de>
parents: 5798
diff changeset
  1209
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1210
            abortButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1211
            m enable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1212
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1213
            abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1214
            m disable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1215
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1216
        exclusive ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1217
            terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1218
            m disable:#doTerminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1219
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1220
            terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1221
            m enable:#doTerminate.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1222
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1223
        iAmNew ifFalse:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1224
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1225
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1226
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1227
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1228
    mayProceed == false ifTrue:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1229
        continueButton disable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1230
        m notNil ifTrue:[m disable:#doContinue].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1231
    ] ifFalse:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1232
        continueButton enable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1233
        m notNil ifTrue:[m enable:#doContinue]
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1234
    ].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1235
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1236
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1237
     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
  1238
     Otherwise, its probably better to do a map, which shows the
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1239
     view at the previous position, without a need for the user to set the
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1240
     position again
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1241
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1242
    iAmNew ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1243
        self remap.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1244
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1245
        self realize.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1246
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1247
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1248
    exclusive ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1249
        self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1250
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
  1251
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1252
This is a modal debugger - all event processing is stopped..
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1253
Therefore, you cannot interact with other views or 
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1254
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
  1255
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1256
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
  1257
    ].
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1258
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1259
    self autoRaiseView ifTrue:[
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1260
        "/ self raise.
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1261
        self raiseDeiconified.
7971
c769005fe651 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7912
diff changeset
  1262
        self topView 
c769005fe651 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7912
diff changeset
  1263
            activate; setForegroundWindow; activate.
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1264
    ].
1486
6ae442626f20 wait until visible before starting to draw
Claus Gittinger <cg@exept.de>
parents: 1484
diff changeset
  1265
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1266
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1267
    exitAction := nil.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1268
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1269
    "/ 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
  1270
    "/ 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
  1271
    "/ closedown of the debugger.
3701
ef73aac8e8d5 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 3694
diff changeset
  1272
    [self controlLoop] ifCurtailed:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1273
        windowGroup notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1274
            windowGroup setProcess:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1275
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1276
        self destroy
132
claus
parents: 127
diff changeset
  1277
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1278
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1279
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1280
    "/ 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
  1281
    "/ 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
  1282
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1283
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1284
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1285
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1286
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1287
    ObjectMemory stepInterruptHandler == self ifTrue:[
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1288
        ObjectMemory stepInterruptHandler:nil.
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1289
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1290
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1291
    "/ not stepping - close window
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1292
    (exitAction ~~ #step) ifTrue:[
3165
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1293
        lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1294
        lastSelectionInContextInspector := contextInspector selectedKeyName.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1295
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1296
        contextInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1297
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1298
        self unmap.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1299
        device flush.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1300
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1301
        (exitAction == #abort) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1302
            self exit_abort.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1303
        ].
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1304
        (exitAction == #abortAll) ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1305
            self exit_abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1306
        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1307
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1308
        (exitAction == #return) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1309
            self exit_return.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1310
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1311
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1312
        (exitAction == #restart) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1313
            self exit_restart.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1314
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1315
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1316
        (exitAction == #quickTerminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1317
            self exit_quickTerminate.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1318
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1319
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1320
        (exitAction == #terminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1321
            self exit_terminate.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1322
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1323
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1324
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1325
    "/ stepping - window stays open
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1326
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1327
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1328
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  1329
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1330
    grabber notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1331
        device grabPointerInView:grabber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1332
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1333
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1334
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1335
    (exitAction == #step) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1336
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1337
         schedule another stepInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1338
         - must enter myself into the collection of open debuggers,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1339
           in case the stepping process comes back again via a halt or signal
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1340
           before the step is finished. In this case, the stepping debugger should
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1341
           come up (instead of a new one)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1342
         - must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1343
           look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1344
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1345
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1346
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1347
        "/ also must care for stepping into a return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1348
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1349
        steppedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1350
            Processor activeProcess forceInterruptOnReturnOf:steppedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1351
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1352
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1353
        OpenDebuggers isNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1354
            OpenDebuggers := WeakIdentitySet new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1355
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1356
        OpenDebuggers add:self.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1357
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1358
        self label:'single stepping - please wait ...'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1359
        stepping := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1360
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1361
        ObjectMemory stepInterruptHandler:self.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1362
        Processor activeProcess stepInterruptHandler:self.
2963
c2df17414c2e next version
penk
parents: 2914
diff changeset
  1363
        ObjectMemory flushCaches.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1364
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1365
        Context singleStepInterruptRequest isHandled ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1366
            "bigStep" steppedContextLineno notNil ifTrue:[   
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1367
                Context singleStepInterruptRequest raiseWith:#next
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1368
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1369
                Context singleStepInterruptRequest raiseWith:#step
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1370
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1371
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1372
            "/ see if we came here through an interrupt-action
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1373
            "/ (i.e. aProcess interruptWith:...)
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1374
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1375
            enteredByInterrupt := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1376
            con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1377
            [enteredByInterrupt not
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1378
             and:[con notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1379
             and:[con ~~ aContext]]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1380
                ((sel := con selector) == #timerInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1381
                or:[sel == #ioInterrupt]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1382
                    enteredByInterrupt := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1383
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1384
                    con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1385
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1386
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1387
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1388
            ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1389
1456
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1390
            DebuggingDebugger == true ifTrue:[
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1391
                enteredByInterrupt printCR.
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1392
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1393
            enteredByInterrupt ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1394
                "/ dont want to step through all intermediate
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1395
                "/ (scheduler-) contexts; place a return-trap on the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1396
                "/ one right below the interesting one
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1397
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1398
"/                'special unwind return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1399
                con unwindThenDo:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1400
                                  Processor activeProcess stepInterruptHandler:self.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1401
                                  ObjectMemory stepInterruptHandler:self.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1402
                                  InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1403
                                  StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1404
                                  InterruptPending := 1].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1405
            ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1406
"/                'normal step return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1407
                skipLineNr ~~ #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1408
                    StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1409
                    InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1410
                ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1411
"/                    'step for return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1412
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1413
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1414
            InStepInterrupt := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1415
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1416
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1417
        OpenDebuggers notNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1418
            OpenDebuggers remove:self ifAbsent:[].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1419
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1420
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1421
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1422
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1423
    "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
  1424
    "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
  1425
    "Modified: / 13-10-1998 / 19:56:59 / ps"
7830
561dfa2c8bf6 changed #enter:select:
Claus Gittinger <cg@exept.de>
parents: 7823
diff changeset
  1426
    "Modified: / 28-07-2007 / 12:12:03 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1427
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1428
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1429
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1430
    "/ 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
  1431
    "/ 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
  1432
    "/ 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
  1433
    "/ 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
  1434
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1435
    "/ done in the #enter:select method.    
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1436
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1437
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1438
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1439
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1440
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1441
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1442
    "/ 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
  1443
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1444
    "/ 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
  1445
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1446
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1447
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1448
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1449
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1450
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1451
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1452
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1453
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1454
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1455
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1456
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1457
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1458
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1459
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1460
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1461
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1462
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1463
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1464
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1465
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1466
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1467
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1468
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1469
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1470
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1471
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1472
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1473
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1474
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1475
            con unwindAndRestart.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1476
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1477
        'DebugView [warning]: cannot restart selected context' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1478
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1479
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1480
    "Created: / 16.11.2001 / 17:23:17 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1481
    "Modified: / 17.11.2001 / 23:37:09 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1482
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1483
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1484
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1485
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1486
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1487
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1488
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1489
         if there is a selection in the codeView,
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1490
         evaluate it and use the result as return value
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1491
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1492
"/ 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
  1493
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1494
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1495
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1496
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1497
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1498
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1499
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1500
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1501
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1502
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1503
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1504
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1505
"/                        retVal := codeView doItAction value:s.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1506
"/                    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1507
"/                ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1508
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1509
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1510
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1511
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1512
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1513
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1514
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1515
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1516
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1517
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1518
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1519
            con unwind:retVal.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1520
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1521
        'DebugView [warning]: cannot return from selected context' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1522
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1523
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1524
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1525
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1526
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1527
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1528
exit_terminate
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1529
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1530
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1531
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1532
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1533
    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1534
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1535
        ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1536
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1537
    ] do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1538
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1539
        Processor activeProcess terminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1540
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1541
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1542
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1543
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1544
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1545
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1546
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1547
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1548
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1549
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1550
    "/ 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
  1551
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1552
    "/ 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
  1553
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1554
    "/ To avoid this, we unwind all contexts and simulate the raise as if it was
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1555
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1556
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1557
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1558
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1559
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1560
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1561
    self cacheMyself.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1562
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1563
    Error handle:[:ex |
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1564
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1565
        ex description infoPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1566
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1567
        ex proceed
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1568
    ] do:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1569
        "/ find the enter:select context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1570
        con := thisContext sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1571
        [   
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1572
            (con selector == #enter:select:)
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1573
            and:[con receiver == self]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1574
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1575
        whileFalse:[ con := con sender ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1576
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1577
        "/ must skip over its caller (because this one has a ControlInterrupt handler too)
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1578
        con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1579
            con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1580
            con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1581
                con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1582
                con isBlockContext ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1583
                    con := con methodHome.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1584
                ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1585
            ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1586
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1587
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1588
        con unwindThenDo:aBlock.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1589
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1590
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1591
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1592
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1593
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1594
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1595
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1596
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1597
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1598
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1599
    initialSelectionOrNil notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1600
        ^ initialSelectionOrNil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1601
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1602
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1603
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1604
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1605
     - 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
  1606
     - 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
  1607
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1608
     - 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
  1609
       in the context where the raise actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1610
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1611
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1612
    con2 := (contextArray at:2 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1613
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1614
    exitAction == #step ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1615
        selection := 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1616
        steppedContext notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1617
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1618
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1619
             if we came here by a big-step, show the method where we are
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1620
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1621
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1622
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1623
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1624
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1625
                    selection := 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1626
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1627
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1628
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1629
             for bigStep, we could also be in a block below the actual method ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1630
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1631
            ((h := con1 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1632
             and:[h == steppedContext]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1633
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1634
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1635
                (con2 notNil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1636
                and:[(h := con2 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1637
                and:[h == steppedContext]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1638
                    selection := 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1639
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1640
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1641
            h := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1642
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1643
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1644
        steppedContext isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1645
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1646
             preselect a more interesting context, (where halt/raise was ...)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1647
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1648
            "/ selection := self class interestingContextIndexFrom:aContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1649
            selection := self class interestingContextIndexIn:contextArray.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1650
            selection := selection min:(contextArray size).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1651
        ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1652
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1653
             if we came here by a big-step, show the method where we are
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1654
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1655
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1656
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1657
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1658
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1659
                    selection := 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1660
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1661
            ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1662
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1663
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1664
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1665
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1666
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1667
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1668
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1669
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1670
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1671
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1672
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1673
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1674
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1675
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1676
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1677
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1678
openOn:aProcess
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1679
    "enter the debugger on a process - 
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1680
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1681
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1682
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1683
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1684
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1685
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1686
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1687
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1688
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1689
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1690
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1691
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1692
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1693
    inspectedProcess := aProcess.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1694
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1695
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1696
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1697
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1698
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1699
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1700
    continueButton label:(resources string:'Continue').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  1701
    w := continueButton preferredWidth.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1702
    continueButton label:(resources string:'Stop').
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  1703
    w := w max:(continueButton preferredWidth).
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  1704
    continueButton preferredExtent:(w @ continueButton preferredHeight).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1705
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1706
    aProcess state == #run ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1707
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1708
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1709
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1710
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1711
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1712
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1713
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1714
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1715
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1716
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1717
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1718
    ].
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  1719
    continueButton preferredExtent:(w @ continueButton preferredHeight).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1720
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1721
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1722
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1723
92
claus
parents: 90
diff changeset
  1724
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1725
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1726
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1727
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1728
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1729
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1730
    updateButton := Button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1731
                        label:(resources string:'Update')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1732
                        action:[self updateContext]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1733
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1734
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1735
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1736
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1737
    monitorToggle releaseAction:[self autoUpdateOff].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1738
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1739
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1740
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1741
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1742
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1743
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1744
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1745
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1746
    stepButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1747
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1748
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1749
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1750
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1751
    aProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1752
        terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1753
        abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1754
        continueButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1755
        returnButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1756
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1757
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1758
        (aProcess suspendedContext isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1759
        or:[aProcess isSystemProcess]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1760
            terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1761
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1762
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1763
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1764
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1765
        catchBlock := [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1766
            catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1767
            contextArray := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1768
            selectedContext := actualContext := firstContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1769
            steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1770
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1771
            (exitAction == #terminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1772
                aProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1773
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1774
            (exitAction == #quickTerminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1775
                aProcess terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1776
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1777
            super destroy
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1778
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1779
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1780
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1781
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  1782
    "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
  1783
    "Modified: 17.4.1997 / 13:01:57 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1784
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1785
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1786
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1787
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1788
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1789
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1790
    selection notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1791
        self showSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1792
        contextView setSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1793
        selection > 1 ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1794
            contextView scrollToLine:(selection - 1)
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1795
        ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1796
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1797
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1798
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1799
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1800
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1801
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1802
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1803
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1804
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1805
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1806
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1807
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1808
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1809
    stepButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1810
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1811
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1812
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1813
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1814
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1815
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1816
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1817
flyByHelpTextFor:aComponent
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1818
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1819
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1820
    aComponent == abortButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1821
        s := 'Abort (Unwind to EventLoop)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1822
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1823
    aComponent == terminateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1824
        s := 'Terminate Process (Close View)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1825
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1826
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1827
        continueButton label = (resources string:'Stop') ifTrue:[
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1828
            s := 'Stop'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1829
        ] ifFalse:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1830
            s := 'Continue Execution'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1831
        ]
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1832
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1833
    aComponent == stepButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1834
        s := 'Step to Next Send'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1835
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1836
    aComponent == nextButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1837
        s := 'Step to Next Line'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1838
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1839
    aComponent == nextOverButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1840
        s := 'Step Over'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1841
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1842
    aComponent == nextOutButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1843
        s := 'Step Out'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1844
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1845
    aComponent == sendButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1846
        s := 'Send Next Message'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1847
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1848
    aComponent == returnButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1849
        s := 'Return from selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1850
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1851
    aComponent == restartButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1852
        s := 'Restart selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1853
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1854
    aComponent == monitorToggle ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1855
        s := 'Toggle Monitoring'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1856
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1857
    aComponent == updateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1858
        s := 'Update'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1859
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1860
    s notNil ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1861
        ^ resources string:s
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1862
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1863
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1864
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1865
    "Modified: 29.8.1995 / 23:38:54 / claus"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1866
    "Modified: 4.3.1997 / 01:54:03 / cg"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1867
!
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1868
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1869
helpTextFor:aComponent
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1870
    |s|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1871
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1872
    aComponent == abortButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1873
        s := 'HELP_ABORT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1874
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1875
    aComponent == terminateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1876
        s := 'HELP_TERMINATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1877
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1878
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1879
        continueButton label = (resources string:'Stop') ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1880
            s := 'HELP_STOP'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1881
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1882
            s := 'HELP_CONTINUE'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1883
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1884
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1885
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1886
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1887
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1888
    aComponent == nextButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1889
        s := 'HELP_NEXT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1890
    ].
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1891
    aComponent == nextOverButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1892
        s := 'HELP_NEXTOVER'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1893
    ].
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1894
    aComponent == nextOutButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1895
        s := 'HELP_NEXTOUT'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1896
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1897
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1898
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1899
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1900
    aComponent == sendButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1901
        s := 'HELP_SEND'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1902
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1903
    aComponent == returnButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1904
        s := 'HELP_RETURN'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1905
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1906
    aComponent == restartButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1907
        s := 'HELP_RESTART'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1908
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1909
    aComponent == contextView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1910
        s := 'HELP_WALKBACK'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1911
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1912
    aComponent == codeView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1913
        s := 'HELP_CODEVIEW'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1914
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1915
    aComponent == monitorToggle ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1916
        s := 'HELP_MONITOR'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1917
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1918
    aComponent == updateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1919
        s := 'HELP_UPDATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1920
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1921
"/    aComponent == stopButton ifTrue:[
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1922
"/        s := 'HELP_STOP'
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1923
"/    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1924
    (aComponent isComponentOf:receiverInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1925
        s := 'HELP_REC_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1926
    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1927
    (aComponent isComponentOf:contextInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1928
        s := 'HELP_CON_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1929
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1930
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1931
    s notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1932
        ^ resources string:s
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1933
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1934
    ^ nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1935
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1936
    "Modified: 29.8.1995 / 23:38:54 / claus"
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1937
    "Modified: 4.3.1997 / 01:54:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1938
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1939
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  1940
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1941
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1942
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1943
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1944
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1945
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1946
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1947
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1948
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1949
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1950
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1951
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1952
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1953
    self checkIfCodeIsReallyModified ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1954
        (self confirm:('Code modified - exit anyway ?'))
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1955
        ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1956
            ^ self
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1957
        ]
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1958
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1959
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1960
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1961
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1962
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1963
    inspecting ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1964
        "I am running on top of a process, abort or continue it"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1965
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1966
        windowGroup notNil ifTrue:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1967
            windowGroup setProcess:nil.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1968
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1969
        self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1970
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1971
        "/
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1972
        "/ catch invalid return;
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1973
        "/ this happens, when my process has somehow died (quickterminate)
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1974
        "/ and I am a leftOver view, which gets terminated via the launchers
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1975
        "/ #destroy-window function.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1976
        "/
3124
540feceebffa invalidReturnSignal -> cannotReturnSignal
Claus Gittinger <cg@exept.de>
parents: 3121
diff changeset
  1977
        Context cannotReturnSignal handle:[:ex |
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1978
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1979
            self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1980
            Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1981
            ex return.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1982
        ] do:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1983
            AbortOperationRequest isHandled ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1984
                self doAbort.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1985
            ] ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1986
                self doContinue
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1987
            ]
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1988
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1989
        "/ We don't reach this point normally
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1990
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1991
        Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1992
        self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1993
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1994
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  1995
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1996
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1997
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1998
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1999
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2000
    "Modified: / 10.7.1997 / 17:15:41 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  2001
    "Modified: / 16.11.2001 / 17:38:15 / cg"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2002
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  2003
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2004
initialize
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2005
    |menu menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel 
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2006
     newLayout v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2007
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2008
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2009
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
  2010
    font := font onDevice:device.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2011
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2012
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  2013
    ignoreBreakpoints := true.    "/ ignore halts/breakpoints in doIts of
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  2014
                                  "/ the debugger
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  2015
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2016
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2017
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2018
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2019
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2020
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2021
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2022
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2023
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2024
    mH := 0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2025
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2026
    menuPanel := MenuPanel in:self.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2027
    menuPanel receiver:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2028
    menuPanel verticalLayout:false.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2029
    menu := self class menuSpec decodeAsLiteralArray.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2030
    menu findGuiResourcesIn:self.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  2031
    menuPanel menu:menu.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2032
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2033
    mH := menuPanel preferredHeight.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2034
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2035
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2036
    newLayout := UserPreferences current useNewLayoutInDebugger.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2037
    newLayout ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2038
        bpanel := HorizontalPanelView in:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2039
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2040
        self initializeButtonsIn:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2041
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2042
        bH := bpanel preferredHeight.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2043
        bpanel origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2044
               extent:(1.0 @ bH).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2045
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2046
                            origin:(0.0 @ (mH + bH))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2047
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2048
                            in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2049
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2050
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2051
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2052
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2053
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2054
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2055
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2056
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2057
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2058
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2059
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2060
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  2061
    ] ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2062
        bpanel1 := HorizontalPanelView in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2063
        self initializeButtons1In:bpanel1.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2064
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2065
        bH1 := bpanel1 preferredHeight.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2066
        bpanel1 origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2067
                extent:(1.0 @ bH1).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2068
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2069
                            origin:(0.0 @ (mH + bH1))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2070
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2071
                                in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2072
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2073
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2074
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2075
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2076
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2077
        bpanel2 := HorizontalPanelView in:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2078
        self initializeButtons2In:bpanel2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2079
8161
c3a91c963a35 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8154
diff changeset
  2080
        bH2 := bpanel2 preferredHeight.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2081
        bpanel2 origin:(0.0 @ 0.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2082
                extent:(1.0 @ bH2).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2083
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2084
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2085
        v origin:(0.0 @ bH2) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2086
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2087
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2088
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2089
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2090
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2091
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2092
    DefaultDebuggerBackgroundColor notNil ifTrue:[
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2093
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2094
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2095
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2096
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2097
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2098
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2099
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2100
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2101
    "Modified: / 17.11.2001 / 20:50:24 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2102
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2103
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2104
initializeAbortButtonIn:bpanel 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2105
    abortButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2106
                label:(resources string:'Abort')
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2107
                action:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2108
                    abortButton turnOffWithoutRedraw.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2109
                    self doAbort
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2110
                ]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2111
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2112
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2113
    "Created: / 17.11.2001 / 20:56:47 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2114
    "Modified: / 17.11.2001 / 20:57:17 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2115
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2116
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2117
initializeButtons1In:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2118
    |separator|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2119
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2120
    bpanel horizontalLayout:#leftMax.  "was: #left. "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2121
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2122
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2123
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2124
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2125
"/    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2126
"/    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2127
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2128
    self initializeContinueButtonIn:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2129
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2130
    separator := View extent:(10 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2131
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2132
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2133
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2134
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2135
    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2136
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2137
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2138
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2139
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2140
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2141
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2142
    "Modified: / 17.11.2001 / 21:02:59 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2143
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2144
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2145
initializeButtons2In:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2146
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2147
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2148
    bpanel horizontalLayout:#leftMax.  "was: #left. "
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2149
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2150
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2151
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2152
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2153
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2154
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2155
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2156
"/ I disabled the stepIn / stepOut buttons - for now.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2157
"/ they do not work relyable with inlined blocks yet.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2158
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2159
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2160
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2161
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2162
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2163
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2164
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2165
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2166
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2167
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2168
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2169
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2170
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2171
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2172
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2173
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2174
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2175
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2176
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2177
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2178
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2179
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2180
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2181
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2182
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2183
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2184
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2185
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2186
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2187
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2188
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2189
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2190
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2191
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2192
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2193
    self initializeReturnButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2194
    self initializeRestartButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2195
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2196
    "Modified: / 17.11.2001 / 21:01:38 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2197
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2198
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2199
initializeButtonsIn:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2200
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2201
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2202
    bpanel horizontalLayout:#left.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2203
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2204
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2205
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2206
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2207
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2208
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2209
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2210
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2211
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2212
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2213
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2214
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2215
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2216
    self initializeReturnButtonIn:bpanel.    
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2217
    self initializeRestartButtonIn:bpanel.    
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2218
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2219
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2220
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2221
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2222
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2223
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2224
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2225
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2226
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2227
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2228
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2229
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2230
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2231
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2232
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2233
"/        img := (resources at:'next')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2234
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2235
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2236
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2237
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2238
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2239
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2240
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2241
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2242
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2243
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2244
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2245
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2246
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2247
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2248
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2249
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2250
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2251
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2252
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2253
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2254
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2255
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2256
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2257
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2258
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2259
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2260
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2261
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2262
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2263
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2264
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2265
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2266
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2267
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2268
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2269
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2270
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2271
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2272
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2273
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2274
    "Created: / 17.11.2001 / 20:56:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2275
    "Modified: / 17.11.2001 / 21:03:18 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2276
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2277
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2278
initializeCodeViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2279
    |v|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2280
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2281
    v := HVScrollableView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2282
                for:CodeView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2283
                miniScrollerH:true
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2284
                miniScrollerV:false
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2285
                in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2286
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2287
"/    v autoHideScrollBars:true.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2288
    codeView := v scrolledView.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2289
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2290
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2291
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2292
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2293
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2294
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2295
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2296
    v := HVScrollableView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2297
                for:SelectionInListView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2298
                miniScrollerH:true
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2299
                miniScrollerV:false
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2300
                in:panel.
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2301
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2302
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2303
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2304
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2305
    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
  2306
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2307
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2308
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2309
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2310
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2311
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2312
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2313
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2314
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2315
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2316
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2317
!
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2318
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2319
initializeContinueButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2320
    continueButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2321
                label:(resources string:'Continue')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2322
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2323
                    continueButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2324
                    self doContinue
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2325
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2326
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2327
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2328
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2329
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2330
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2331
initializeDefineButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2332
    defineButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2333
                label:(resources string:'Define')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2334
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2335
                    defineButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2336
                    self doDefine
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2337
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2338
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2339
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2340
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2341
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2342
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2343
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2344
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2345
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2346
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2347
    hpanel := VariableHorizontalPanel in:panel.
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
    receiverInspector := InspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2350
                                origin:(0.0 @ 0.0) corner:(0.5 @ 1.0)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2351
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2352
    receiverInspector fieldListLabel:'Receiver'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2353
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2354
    contextInspector := ContextInspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2355
                                origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2356
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2357
    contextInspector fieldListLabel:'Context'.
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  2358
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2359
    ^ hpanel
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2360
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2361
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2362
initializeNextButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2363
    nextButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2364
                label:(resources string:'Next')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2365
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2366
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2367
                    self doNext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2368
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2369
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2370
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2371
    "Created: / 17.11.2001 / 20:59:38 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2372
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2373
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2374
initializeReportButtonIn:bpanel 
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2375
    reportButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2376
                label:(resources string:'Report by Mail')
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2377
                action:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2378
                    reportButton turnOffWithoutRedraw.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2379
                    self doOpenReportMailApp.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2380
                ]
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2381
                in:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2382
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2383
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2384
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2385
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2386
initializeRestartButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2387
    restartButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2388
                label:(resources string:'Restart')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2389
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2390
                    restartButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2391
                    self doRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2392
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2393
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2394
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2395
    "Created: / 17.11.2001 / 20:58:52 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2396
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2397
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2398
initializeReturnButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2399
    returnButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2400
                label:(resources string:'Return')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2401
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2402
                    returnButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2403
                    self doReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2404
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2405
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2406
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2407
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2408
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2409
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2410
initializeSendButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2411
    sendButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2412
                label:(resources string:'Send')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2413
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2414
                    sendButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2415
                    self doSend
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2416
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2417
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2418
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2419
    "Created: / 17.11.2001 / 21:01:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2420
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2421
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2422
initializeStepButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2423
    stepButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2424
                label:(resources string:'Step')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2425
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2426
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2427
                    self doStep
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2428
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2429
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2430
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2431
    "Created: / 17.11.2001 / 21:00:13 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2432
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2433
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2434
initializeTerminateButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2435
    terminateButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2436
                label:(resources string:'Terminate')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2437
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2438
                    terminateButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2439
                    self doTerminate
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2440
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2441
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2442
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2443
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2444
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2445
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2446
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2447
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2448
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2449
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2450
        inspectedProcess notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2451
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2452
             set prio somewhat higher (by 2, to allow walkBack-update process
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2453
             to run between mine and the debugged processes prio)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2454
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2455
            Processor activeProcess 
6464
ad9a50d6097e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6430
diff changeset
  2456
                priority:(((inspectedProcess priority + 2) min:(Processor highIOPriority)) max:(Processor userSchedulingPriority+1)).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2457
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2458
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2459
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2460
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2461
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2462
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2463
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2464
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2465
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2466
    "/ 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
  2467
    "/ 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
  2468
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2469
    drawableId notNil ifTrue:[
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2470
        ^ self
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2471
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2472
    "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
  2473
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2474
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2475
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2476
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2477
setLabelFor:aMessage in:aProcess
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2478
    |l lines nm|
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2479
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2480
    lines := aMessage asStringCollection.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2481
    lines size > 1 ifTrue:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2482
        l := lines first
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2483
    ] ifFalse:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2484
        l := aMessage.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2485
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2486
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2487
    l := l , ' ('.
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2488
    Error handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2489
        l := l , '???'
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2490
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2491
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2492
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2493
            l := l , (nm contractTo:17) , ''.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2494
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2495
        l := l , '[' , aProcess id printString , ']'.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2496
    ].
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2497
    l := l , ')'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2498
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2499
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2500
    "Modified: / 06-07-2006 / 12:43:19 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2501
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2502
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2503
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2504
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2505
contextInterrupt
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2506
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2507
        'contextIRQ' printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2508
        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
  2509
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2510
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2511
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2512
    "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
  2513
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2514
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2515
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2516
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2517
        'stepIRQ' printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2518
        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
  2519
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2520
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2521
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2522
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2523
    "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
  2524
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2525
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2526
stepOrNext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2527
    |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
  2528
     inBlock left ignore contextBelow lastWrappedContext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2529
     leftWrap enteredWrap anyStepBlocks 
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2530
     oneMore initiallyShown inBlockBelow receiver|
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2531
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2532
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  2533
    "/ DebuggingDebugger := false
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2534
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2535
    skipLineNr == #return ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2536
        name := Processor activeProcess nameOrId.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2537
        self label:('stepping context returned ' , ' (process: ' , name , ')').
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2538
        here := thisContext sender sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2539
        here setLineNumber:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2540
        here := nil.
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2541
        con := thisContext sender sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2542
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2543
        BreakPointInterrupt handle:[:ex |
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2544
            'DebugView [info]: breakpoint in debugger ignored [stepOrNext]' infoPrintCR.
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2545
            ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2546
        ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2547
            self enter:con select:nil.
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2548
        ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2549
        con := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2550
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2551
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2552
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2553
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2554
"/    "/ 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
  2555
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2556
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2557
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2558
"/        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
  2559
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2560
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2561
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2562
    Processor activeProcess ~~ inspectedProcess ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2563
        'DebugView [info]: stray step interrupt' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2564
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2565
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2566
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2567
    here := thisContext.        "stepInterrupt"
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2568
    here := here sender.        "the caller; step- or contextIRQ"  
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2569
    here := here sender.        "the interrupted context"  
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2570
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2571
    DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2572
        '*******' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2573
        'here in ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2574
        inWrap ifTrue:['(wrap) ' print.].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2575
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2576
        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
  2577
    ].
10
46e0d4f2079f *** empty log message ***
claus
parents: 7
diff changeset
  2578
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2579
    "/ kludge an bug-workaround;
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2580
    "/ I should not see those ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2582
    here selector == #ioInterrupt ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2583
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2584
            'oops - should not get that one' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2585
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2586
        Processor ioInterrupt.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2587
        StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2588
        InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2589
        where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2590
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2591
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2592
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2593
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2594
    stepUntilEntering notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2595
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2596
            'check if entering ' print. stepUntilEntering printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2597
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2598
        (stepUntilEntering match:here selector) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2599
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2600
                'entering...' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2601
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2602
            name := Processor activeProcess nameOrId.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2603
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , name , ')').
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2604
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2605
            lastStepUntilEntering := stepUntilEntering.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2606
            stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2607
            self enter:here select:nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2608
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2609
            ^ self
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2610
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2611
        "/ see if stepping context is still active ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2612
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2613
        con := here.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2614
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2615
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2616
            'start searching at: ' print.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2617
            con fullPrint.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2618
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2619
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2620
            con := con sender
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2621
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2622
        con notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2623
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2624
                'steppingContext still active - continue stepping' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2625
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2626
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2627
            where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2628
            StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2629
            InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2630
            InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2631
            ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2632
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2633
        stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2634
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2635
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2636
    "
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2637
     kludge to hide breakpoint wrappers in the context list: 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2638
         check if we are in a wrapper methods hidden setup-sequence
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2639
         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
  2640
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2641
    isWrap := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2642
    left := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2643
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2644
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2645
    where := here.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2646
    inWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2647
        wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2648
        5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2649
            (where notNil and:[where isBlockContext not]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2650
                method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2651
                (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2652
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2653
                     in a wrapper method
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2654
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2655
                    wrappedMethod ~~ method ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2656
                        wrappedMethod := method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2657
                        lastWrappedContext := where.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2658
                        where sender receiver == method originalMethod ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2659
                            isWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2660
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2661
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2662
                        where == steppedContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2663
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2664
                            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2665
                                'change stepCon from: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2666
                                steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2667
                                ' to lastWrapped: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2668
                                lastWrappedContext printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2669
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2670
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2671
                            inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2672
                            leftWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2673
                            wrapperContext := steppedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2674
                            steppedContext := lastWrappedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2675
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2676
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2677
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2678
                where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2679
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2680
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2681
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2682
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2683
    isWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2684
        DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2685
            'ignore wrap' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2686
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2687
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2688
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2689
        "/ ignore, while in wrappers hidden setup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2690
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2691
        where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2692
        ObjectMemory flushInlineCaches.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2693
        
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2694
        skipLineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2695
            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2696
                'skipRet in wrap' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2697
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2698
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2699
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2700
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2701
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2702
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2703
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2704
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2705
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2706
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2707
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2708
    DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2709
        'bigStep is: ' print. bigStep printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2710
        'steppedContext is: ' print. steppedContext printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2711
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2712
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2713
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2714
    "/ 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
  2715
    "/
787
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2716
    (bigStep 
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2717
    and:[steppedContext notNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2718
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2719
         a step or next - ignore all contexts below the interesting one
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2720
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2721
        where := here.      "the interrupted context"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2722
        contextBelow := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2723
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2724
        where home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2725
            "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2726
            "/ in a block called by 'our' context ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2727
            "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2728
            where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2729
"/ '*block*' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2730
                inBlock := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2731
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2732
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2733
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2734
        where == steppedContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2735
            where := where sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2736
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2737
            where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2738
                where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2739
"/ '*block*' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2740
                    inBlock := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2741
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2742
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2743
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2744
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2745
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2746
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2747
"/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
  2748
"/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
  2749
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2750
            where == steppedContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2751
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2752
                "/ check if we are in a context below steppedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2753
                "/ (i.e. if steppedContext can be reached from
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2754
                "/  interrupted context. Not using context-ref but its
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2755
                "/  address to avoid creation of many useless contexts.)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2756
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2757
                inBlock ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2758
                    [where notNil] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2759
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2760
                        "/ if either the receiver or any arg of this context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2761
                        "/ is a block of the steppedContext, we must really
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2762
                        "/ do a single step. Otherwise, stepping through a
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2763
                        "/ do:-loop would be very difficult.
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2764
                        receiver := where receiver.
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2765
                        (receiver isBlock
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2766
                        and:[(receiver isKindOf:Block)
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2767
                        and:[receiver home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2768
                        ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2769
                            anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2770
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2771
                            where args do:[:arg |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2772
                                (arg isBlock
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2773
                                and:[(arg isKindOf:Block)
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2774
                                and:[arg home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2775
                                ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2776
                                    anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2777
                                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2778
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2779
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2780
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2781
                        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2782
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2783
                            where selector printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2784
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2785
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2786
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2787
"/ 'found it - below; ignore' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2788
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2789
                             found the interesting context somwehere up in the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2790
                             chain. We seem to be still below the interesting one ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2791
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2792
                            tracing == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2793
                                here printString printCR
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2794
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2795
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2796
                              yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2797
                              - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2798
                              Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2799
                              look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2800
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2801
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2802
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2803
"/ '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
  2804
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2805
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2806
"/                                    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
  2807
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2808
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2809
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2810
                                    'below stepCon; continue until unwind of: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2811
                                    contextBelow printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2812
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2813
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2814
                                StepInterruptPending := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2815
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2816
                                ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2817
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2818
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2819
"/                                    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
  2820
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2821
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2822
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2823
                                    'in stepCon; continue single stepping' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2824
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2825
                                StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2826
                                InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2827
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2828
                            where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2829
                            InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2830
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2831
                            ^ self
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2832
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2833
1537
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2834
                        (steppedContext notNil and:[
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2835
                         where methodHome == steppedContext methodHome]) ifTrue:[
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2836
                            inBlockBelow := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2837
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2838
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2839
                        anyStepBlocks ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2840
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2841
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2842
"/ 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
  2843
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2844
where isBlockContext ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2845
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2846
].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2847
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2848
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2849
                        where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2850
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2851
                    s := 'context returned'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2852
                    left := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2853
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2854
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2855
"/ 'found it right in sender' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2856
                s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2857
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2858
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2859
"/ 'found it right away' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2860
            s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2861
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2862
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2863
"/ ' send' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2864
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2865
         a send
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2866
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2867
        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2868
            'clear steppedContext' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2869
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2870
        steppedContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2871
        s := 'after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2872
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  2873
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2874
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2875
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2876
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2877
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2878
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2879
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2880
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2881
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2882
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2883
        steppedContext home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2884
            steppedContext := steppedContext home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2885
            s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2886
            left := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2887
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2888
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2889
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2890
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2891
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2892
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2893
     kludge to hide breakpoint wrappers in the context list: 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2894
         check if we are in a wrapper methods hidden exit-sequence
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2895
         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
  2896
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2897
    (where isNil 
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2898
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2899
    ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2900
        "/ did not find our steppedContext along the chain;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2901
        "/ could be in a wrappedMethods exitBlock ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2902
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2903
        leftWrap ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2904
            where := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2905
            wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2906
            5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2907
                where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2908
                    where isBlockContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2909
                        method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2910
                        (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2911
                            where == wrapperContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2912
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2913
                                    'change stepCon fromWrapped: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2914
                                    steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2915
                                    ' to: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2916
                                    wrapperContext printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2917
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2918
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2919
                                inWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2920
                                enteredWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2921
                                steppedContext := wrapperContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2922
                                wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2923
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2924
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2925
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2926
                    where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2927
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2928
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2929
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2930
        enteredWrap ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2931
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2932
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2933
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2934
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2935
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2936
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2937
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2938
        "/ special care for stepInterrupt in send,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2939
        "/ when created a dummy context (lineNr == 1)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2940
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2941
        steppedContext lineNumber isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2942
            steppedContext selector == here sender selector ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2943
                left := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2944
                s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2945
                steppedContext := here sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2946
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2947
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2948
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2949
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2950
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2951
    inBlock ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2952
"/ 'inBlock' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2953
        s := 'in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2954
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2955
    inBlockBelow ifTrue:[
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2956
        ignore := true
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2957
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2958
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2959
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2960
        where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2961
            '(' print. steppedContextLineno print. ') ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2962
            where printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2963
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  2964
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2965
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2966
    ignore ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2967
        (bigStep 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2968
        and:[steppedContextLineno notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2969
        and:[where notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2970
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2971
            (here isBlockContext 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2972
            and:[(here methodHome == steppedContext)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2973
                 or:[here home == steppedContext]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2974
                DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2975
                    'same line but in block' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2976
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2977
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2978
                steppedContext := actualContext := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2979
                steppedContextLineno := here lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2980
            ] ifFalse:[    
3063
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2981
                "/ kludge - I only have the info for up to 255 lines
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2982
                steppedContextLineno ~~ 255 ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2983
                    DebuggingDebugger == true ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2984
                        'same line - ignored' printCR.
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2985
                    ].
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2986
                    ignore := true
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2987
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2988
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2989
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2990
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2991
        (left not 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2992
        and:[skipLineNr notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2993
        and:[where notNil
1764
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  2994
        and:[where lineNumber notNil
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  2995
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2996
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2997
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2998
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2999
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3000
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3001
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3002
        (steppedContextLineno isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3003
        and:[skipLineNr isNil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3004
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3005
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3006
                'same line2 (after conIRQ) - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3007
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3008
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3009
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3010
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3011
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3012
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3013
"/' ' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3014
        where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3015
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3016
         yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3017
          - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3018
          Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3019
          look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3020
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3021
        ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3022
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3023
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3024
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3025
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3026
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3027
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3028
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3029
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3030
    name := Processor activeProcess nameOrId.
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3031
    self label:(s , ' (process: ' , name , ')').
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3032
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3033
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3034
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3035
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3036
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3037
    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
  3038
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3039
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  3040
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3041
        '==> 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
  3042
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3043
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3044
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3045
    (oneMore == true) ifTrue:[
1871
971fe3afd573 care for nil lineNumber in context (how can this happen ?)
Claus Gittinger <cg@exept.de>
parents: 1824
diff changeset
  3046
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3047
            initiallyShown := 2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3048
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3049
            initiallyShown := 1
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3050
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3051
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3052
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3053
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3054
    BreakPointInterrupt handle:[:ex |
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3055
        'DebugView [info]: breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3056
        ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3057
    ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3058
        self enter:con select:initiallyShown
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3059
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3060
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3061
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3062
    "Created: / 14.10.1996 / 12:53:39 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3063
    "Modified: / 18.11.2001 / 01:00:55 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3064
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3065
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  3066
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3067
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3068
addBreakpoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3069
    "add a breakpoint on the selected contexts method - if any"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3070
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3071
    |implementorClass method|
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3072
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3073
    selectedContext isNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3074
        ^ self showError:'** select a context first **'
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3075
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3076
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3077
        ^ self
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3078
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3079
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3080
    implementorClass := selectedContext methodClass. 
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3081
    implementorClass notNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3082
        method := implementorClass compiledMethodAt:selectedContext selector.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3083
        (method notNil and:[method isBreakpointed not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3084
            method setBreakPoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3085
        ]
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3086
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3087
    contextView middleButtonMenu disable:#addBreakpoint.
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3088
    contextView middleButtonMenu enable:#removeBreakpoint.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3089
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3090
    "Modified: / 13.1.1998 / 00:24:47 / cg"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3091
!
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3092
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3093
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3094
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3095
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3096
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3097
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3098
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3099
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3100
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3101
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3102
    (cls includesSelector:sel) ifFalse:[
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3103
        sel := nil
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3104
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3105
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3106
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3107
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3108
allowBreakPointsInDebugger
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3109
    ^ ignoreBreakpoints not
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3110
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3111
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3112
allowBreakPointsInDebugger:aBoolean
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3113
    ignoreBreakpoints := aBoolean not.
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3114
    self initializeMiddleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3115
    self initializeContextViewsMiddleButtonMenu.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3116
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3117
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3118
autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3119
    ^ UserPreferences current autoRaiseDebugger
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3120
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3121
    "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
  3122
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3123
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3124
autoRaiseView:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3125
    UserPreferences current autoRaiseDebugger:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3126
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3127
    "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
  3128
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3129
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3130
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3131
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3132
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3133
    updateProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3134
        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3135
        updateProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3136
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3137
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3138
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3139
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3140
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3141
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3142
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3143
    updateProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3144
        updateProcess := 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3145
            [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3146
                [true] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3147
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3148
                        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3149
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3150
                        monitorToggle activeForegroundColor:Color black.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3151
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3152
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3153
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3154
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3155
                        monitorToggle lampColor:(Color red).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3156
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3157
                        monitorToggle activeForegroundColor:Color red.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3158
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3159
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3160
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3161
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3162
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3163
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3164
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3165
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3166
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3167
browseClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3168
    "browse the reveivers class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3169
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3170
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3171
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3172
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3173
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3174
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3175
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3176
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3177
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3178
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3179
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3180
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3181
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3182
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3183
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3184
browseClassHierarchy
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3185
    "browse the reveivers classHierarchy (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3186
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3187
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3188
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3189
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3190
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3191
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3192
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3193
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3194
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3195
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3196
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3197
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3198
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3199
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3200
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3201
    "Modified: / 17.11.2001 / 19:43:06 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3202
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3203
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3204
browseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3205
    "browse the reveivers full protocol (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3206
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3207
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3208
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3209
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3210
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3211
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3212
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3213
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3214
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3215
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3216
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3217
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3218
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3219
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3220
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3221
    "Modified: / 17.11.2001 / 19:43:43 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3222
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3223
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3224
browseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3225
    "browse the implementing class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3226
824
099fa90db8aa use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 804
diff changeset
  3227
    |mthd who sel cls|
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3228
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3229
    selectedContext isNil ifTrue:[^ self].
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3230
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3231
    mthd := selectedContext method.
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3232
    mthd notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3233
        who := selectedContext method who.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3234
        who notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3235
            cls := who methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3236
            sel := who methodSelector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3237
        ]
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3238
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3239
    cls isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3240
        "/ class not found - try receiver
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3241
        cls := selectedContext receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3242
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3243
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3244
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3245
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3246
    "Created: / 22.11.1995 / 21:27:01 / cg"
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3247
    "Modified: / 3.2.1998 / 19:46:40 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3248
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3249
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3250
browseImplementors
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3251
    "open a browser on the implementors of the selected methods selector"
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3252
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3253
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3254
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3255
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3256
    "/ selectedContext receiver class browserClass
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3257
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3258
         browseImplementorsOf:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3259
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3260
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3261
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3262
    "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
  3263
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3264
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3265
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3266
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3267
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3268
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3269
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3270
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3271
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3272
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3273
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3274
    selector := Dialog 
3320
9e67543d692c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3283
diff changeset
  3275
                    requestSelector:'Selector to browse implementors of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3276
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3277
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3278
        UserPreferences systemBrowserClass
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3279
            browseImplementorsMatching:selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3280
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3281
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3282
    "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
  3283
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3284
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3285
browseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3286
    "browse the reveivers class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3287
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3288
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3289
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3290
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3291
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3292
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3293
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3294
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3295
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3296
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3297
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3298
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3299
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3300
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3301
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3302
browseSenders
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3303
    "open a browser on the senders of the selected methods selector"
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3304
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3305
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3306
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3307
    ].
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3308
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3309
        browseAllCallsOn:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3310
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3311
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3312
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3313
    "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
  3314
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3315
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3316
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3317
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3318
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3319
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3320
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3321
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3322
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3323
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3324
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3325
    selector := Dialog 
3333
5fb73dcafce1 selector box
Claus Gittinger <cg@exept.de>
parents: 3330
diff changeset
  3326
                    requestSelector:'Selector to browse senders of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3327
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3328
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3329
        UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3330
            browseAllCallsOn:selector asSymbol.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3331
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3332
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3333
    "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
  3334
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3335
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3336
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3337
    "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
  3338
     This allows pasting it into some other view for printing ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3339
6034
7f7d4b7362dd set selection interface changed
ca
parents: 5955
diff changeset
  3340
    self setClipboardText:(contextArray collect:[:con | con fullPrintString]) asStringCollection
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3341
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3342
    "Modified: 28.8.1995 / 15:31:59 / claus"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3343
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3344
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3345
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  3346
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3347
     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
  3348
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3349
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3350
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3351
        (self confirm:('Code modified - abort anyway ?'))
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3352
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3353
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3354
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3355
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3356
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3357
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3358
        inspectedProcess isDead ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3359
            self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3360
            ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3361
        ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3362
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3363
            self showError:'** the process does not handle the abort signal **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3364
        ] ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3365
            self interruptProcessWith:[AbortOperationRequest raise].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3366
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3367
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3368
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3369
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3370
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3371
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3372
    exitAction := #abort.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3373
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3374
    "exit private event-loop"
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3375
    catchBlock notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3376
        abortButton turnOff.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3377
        catchBlock value.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3378
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3379
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3380
        'DebugView [warning]: abort failed' errorPrintCR.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3381
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3382
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3383
    ^ self.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3384
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3385
    "Modified: / 17.11.2001 / 22:53:22 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3386
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3387
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3388
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3389
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3390
     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
  3391
     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
  3392
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3393
    self checkIfCodeIsReallyModified ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3394
        (self confirm:('Code modified - abort anyway ?'))
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3395
        ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3396
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3397
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3398
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3399
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3400
    inspecting ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3401
        inspectedProcess isDead ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3402
            self showTerminated.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3403
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3404
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3405
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3406
            self showError:'** the process does not handle the abort signal **'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3407
        ] ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3408
            self interruptProcessWith:[AbortAllOperationRequest raise].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3409
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3410
        ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3411
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3412
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3413
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3414
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3415
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3416
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3417
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3418
    catchBlock notNil ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3419
        abortButton turnOff.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3420
        catchBlock value.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3421
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3422
        "/ not reached
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3423
        'DebugView [warning]: abort failed' errorPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3424
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3425
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3426
    ^ self.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3427
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3428
    "Modified: / 17.11.2001 / 22:53:22 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3429
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3430
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3431
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3432
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3433
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3434
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3435
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3436
    self checkIfCodeIsReallyModified ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3437
        (self confirm:('Code modified - continue anyway ?')) ifFalse:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3438
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3439
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3440
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3441
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3442
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3443
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3444
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3445
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3446
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3447
        continueButton action:[self doStop].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3448
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3449
        self processPerform:#resume.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3450
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3451
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3452
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3453
    canContinue ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3454
        exContext := thisContext findSpecialHandle:false raise:true.
1725
40a8fdab9974 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1719
diff changeset
  3455
        
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3456
        (exContext notNil
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  3457
        and:[ (ex := exContext receiver) isLazyValue not
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  3458
        and:[ ex isException
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3459
        and:[ ex signal == NoHandlerError
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3460
        and:[ ex parameter signal == RecursionError]]]])
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3461
        ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3462
            "/ debug due to unhandled recursionInterrupt.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3463
            "/ ask if we should proceed with more stack.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3464
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3465
            answer := self confirm:'Debugger entered due to a stack overflow.\\Continue with more stack ?' withCRs.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3466
            answer == true ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3467
                proc := Processor activeProcess.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3468
                proc setMaximumStackSize:(proc maximumStackSize * 2).
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3469
            ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3470
        ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3471
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3472
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3473
        tracing := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3474
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3475
        exitAction := #continue.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3476
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3477
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3478
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3479
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3480
        "/ not reached.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3481
        'DebugView [warning]: continue failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3482
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3483
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3484
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3485
        inspecting ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3486
            'DebugView [info]: resuming top context' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3487
            self showSelection:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3488
            self doReturn
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3489
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3490
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3491
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3492
    "Modified: / 5.10.1998 / 13:03:47 / cg"
2308
96e0033aa5a3 Exception handling change.
Stefan Vogel <sv@exept.de>
parents: 2305
diff changeset
  3493
    "Modified: / 26.7.1999 / 15:38:45 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3494
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3495
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3496
doDefine
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3497
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3498
     bagOfClassNames bagOfUsedClassNames|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3499
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3500
    selectionIndex := contextView selection.
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3501
3283
1f20f44c64bf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3270
diff changeset
  3502
    selector := actualContext selector.
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3503
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3504
    "generate nice argument names"
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3505
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3506
    bagOfUsedClassNames := Bag new.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3507
    argNames := actualContext args 
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3508
                    collect:
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3509
                        [:eachArg |
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3510
                            |nm|
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3511
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3512
                            nm := eachArg class name.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3513
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3514
                                nm article , nm
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3515
                            ] ifFalse:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3516
                                bagOfUsedClassNames add:nm.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3517
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3518
                            ].
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3519
                        ].
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3520
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3521
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3522
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3523
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3524
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3525
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3526
    actualContext receiver isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3527
        (self confirm:'Are you sure you want to add this method (to UndefinedObject) ?')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3528
        ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3529
            ^ self
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3530
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3531
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3532
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3533
    receiversClass := actualContext receiver class.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3534
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3535
    (receiversClass instVarNames includes:selector) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3536
        code := '%1\' , haltStmtFix , '\    ^ %2'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3537
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3538
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3539
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3540
    and:[(selector endsWith:':')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3541
    and:[receiversClass instVarNames includes:(selector copyWithoutLast:1)]]) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3542
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3543
        code := '%1\' , haltStmtFix , '\    %2 := arg.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3544
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3545
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3546
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3547
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3548
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3549
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3550
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3551
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3552
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3553
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3554
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3555
    code isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3556
        code := '%1\' , haltStmtDef
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3557
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3558
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3559
    self 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3560
        codeAccept:(code bindWith:proto with:selector) withCRs
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3561
        unwind:false
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3562
        category:cat
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3563
        onCancel:[^ self]. 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3564
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3565
    self doShowSelection:selectionIndex.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3566
    self doRestart
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3567
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3568
    "Modified: / 17.11.2001 / 23:43:54 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3569
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3570
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3571
doIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3572
    self allowBreakPointsInDebugger:false
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3573
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3574
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3575
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3576
    "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
  3577
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3578
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3579
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3580
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3581
        (self confirm:('Code modified - step anyway ?'))
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3582
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3583
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3584
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3585
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3586
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3587
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3588
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3589
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3590
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3591
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3592
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3593
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3594
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3595
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3596
        'DebugView [warning]: send failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3597
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3598
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3599
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3600
    "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
  3601
    "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
  3602
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3603
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3604
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3605
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3606
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3607
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3608
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3609
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3610
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3611
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3612
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3613
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3614
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3615
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3616
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3617
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3618
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3619
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3620
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3621
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3622
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3623
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3624
    "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
  3625
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3626
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3627
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3628
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3629
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3630
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3631
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3632
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3633
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3634
    traceView notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3635
        traceView topView destroy.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3636
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3637
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3638
    tracing := false
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
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3641
doNotIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3642
    self allowBreakPointsInDebugger:true
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3643
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3644
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3645
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3646
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3647
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3648
    | str |
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3649
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3650
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3651
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3652
    str nextPutLine:('Error notification from '
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3653
                    , OperatingSystem getLoginName
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3654
                    , '@'
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3655
                    , OperatingSystem getHostName).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3656
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3657
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  3658
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3659
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3660
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3661
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3662
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3663
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3664
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3665
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3666
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3667
    firstContext notNil ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3668
        firstContext fullPrintAllOn:str.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3669
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3670
    str cr;cr.
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3671
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3672
    SendMailTool 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3673
        openForMessage:(str contents) 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3674
        withSubject:('STX Error:[', self label, ']') 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3675
        preOpenBlock:[:inst|
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3676
            inst recipientEntryField value:'error@exept.de'
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3677
        ].
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3678
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3679
    "Modified: / 20-09-2007 / 12:40:40 / cg"
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3680
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3681
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3682
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3683
    "restart - the selected context will be restarted"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3684
    
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3685
    self checkIfCodeIsReallyModified ifTrue:[
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3686
        (self confirm:('Code modified - restart anyway ?')) ifFalse:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3687
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3688
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3689
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3690
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3691
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3692
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3693
        ].
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3694
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3695
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3696
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3697
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3698
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3699
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3700
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3701
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3702
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3703
    "/ normally not reached
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3704
    
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3705
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3706
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3707
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3708
    "Modified: / 29.7.1998 / 21:49:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3709
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3710
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3711
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3712
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3713
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3714
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3715
        (self confirm:('Code modified - return anyway ?'))
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3716
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3717
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3718
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3719
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3720
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3721
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3722
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3723
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3724
        ].
2313
265e13afc504 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2312
diff changeset
  3725
        self interruptProcessWith:[selectedContext unwind:nil].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3726
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3727
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3728
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3729
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3730
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3731
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3732
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3733
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3734
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3735
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3736
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3737
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3738
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3739
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3740
    "Modified: / 29.7.1998 / 21:50:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3741
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3742
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3743
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3744
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3745
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3746
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3747
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3748
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3749
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3750
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3751
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3752
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3753
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3754
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3755
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3756
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3757
"/        catchBlock notNil ifTrue:[catchBlock value].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3758
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3759
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3760
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3761
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3762
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3763
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3764
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3765
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3766
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3767
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3768
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3769
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3770
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3771
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3772
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3773
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3774
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3775
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3776
doStep:lineNr
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3777
    "common helper for step, skip & next.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3778
     Arrange for single-steppping until we pass lineNr (if nonNil) 
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3779
     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
  3780
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3781
    |con method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3782
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3783
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3784
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3785
    self checkIfCodeIsReallyModified ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3786
        (self confirm:('Code modified - step anyway ?'))
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3787
        ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3788
            ^ self
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3789
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3790
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3791
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3792
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3793
        selectedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3794
            con := actualContext. "/ selectedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3795
            steppedContextLineno := actualContext lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3796
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3797
            con := contextArray at:2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3798
            steppedContextLineno := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3799
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3800
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3801
        skipLineNr := lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3802
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3803
        lineNr == -1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3804
            steppedContextLineno := skipLineNr := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3805
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3806
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3807
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3808
            steppedContext := contextArray at:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3809
            stepHow := #nextIn.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3810
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3811
            stepHow == #nextOut ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3812
                steppedContext := con home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3813
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3814
                steppedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3815
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3816
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3817
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3818
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3819
"/ ' 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
  3820
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3821
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3822
         if we step in a wrapped method,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3823
         prepare to skip the prolog ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3824
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3825
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3826
        inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3827
        method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3828
        (method notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3829
        and:[method isWrapped
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3830
        and:[method originalMethod ~~ method]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3831
            inWrap := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3832
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3833
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3834
        lineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3835
            Processor activeProcess forceInterruptOnReturnOf:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3836
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3837
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3838
        con := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3839
        bigStep := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3840
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3841
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3842
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3843
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3844
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3845
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3846
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3847
        'DebugView [warning]: step failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3848
        stepButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3849
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3850
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3851
    "Modified: / 29.7.1998 / 21:50:16 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3852
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3853
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3854
doStop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3855
    "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
  3856
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3857
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3858
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3859
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3860
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3861
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3862
        continueButton action:[self doContinue].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3863
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3864
        self processPerform:#stop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3865
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3866
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3867
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3868
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3869
    "Modified: 20.10.1996 / 18:30:48 / cg"
266
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
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3873
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3874
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3875
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3876
        (self confirm:('Code modified - terminate anyway ?'))
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3877
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3878
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3879
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3880
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3881
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3882
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3883
        self processPerform:#terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3884
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3885
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3886
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3887
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3888
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3889
    exitAction := #terminate. 
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3890
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3891
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3892
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3893
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3894
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3895
    inspecting ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3896
        'DebugView [warning]: terminate failed' errorPrintCR.
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3897
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3898
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3899
            Processor activeProcess terminate.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3900
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3901
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3902
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3903
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3904
    "Modified: / 29.7.1998 / 21:50:35 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3905
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3906
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3907
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3908
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3909
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3910
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3911
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3912
"/    |v b|
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
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3915
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3916
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3917
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3918
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3919
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3920
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3921
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3922
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3923
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3924
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3925
"/            traceView := nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3926
"/        ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3927
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3928
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3929
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3930
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3931
"/    v realize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3932
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3933
"/    tracing := true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3934
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3935
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3936
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3937
    "tracestep - not implemented yet"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3938
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3939
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3940
        tracing := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3941
        self doStep
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3942
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3943
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3944
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3945
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3946
    "exit from menu: immediate exit from smalltalk"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3947
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3948
    OperatingSystem exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3949
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3950
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3951
hasHaltsToIgnore
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3952
    ^ IgnoredHalts notEmptyOrNil
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3953
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3954
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  3955
ignoreHaltForever
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  3956
    self addIgnoredHaltForCount:-1 orTimeDuration:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  3957
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  3958
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3959
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3960
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3961
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3962
    contextView selection notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3963
        (contextView selectionValue startsWith:'**') ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3964
            (contextArray at:(contextView selection)) inspect.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3965
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3966
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3967
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3968
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3969
isStoppedAtHaltOrBreakPoint
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3970
    ^ isStoppedAtHaltOrBreakPoint
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3971
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  3972
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3973
middleButtonMenu
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3974
    <resource: #programMenu >
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3975
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3976
    |items m|
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3977
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3978
    exclusive ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3979
        items := #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3980
                    ('Show More WalkBack'               showMore                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3981
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3982
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3983
                    ('Add Breakpoint'                   addBreakpoint           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3984
                    ('Remove Breakpoint'                removeBreakpoint        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3985
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3986
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3987
                    ('Copy WalkBack Text'               copyWalkbackText        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3988
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3989
                    ('QuickTerminate'                   quickTerminate          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3990
                    ('='                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3991
                    ('Exit Smalltalk (No Confirmation)' exit                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3992
                  ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3993
    ] ifFalse:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3994
        items := #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3995
                    ('Show More WalkBack'               showMore                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3996
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3997
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3998
                    ('Skip'                             skip                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3999
                    ('Step Out'                         skipForReturn           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4000
                    ('Skip until Entering...'           skipUntilEntering       )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4001
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4002
"
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4003
                    ('Continue'                         doContinue              )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4004
                    ('Terminate'                        doTerminate             )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4005
                    ('Abort'                            doAbort                 )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4006
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4007
                    ('Step'                             doStep                  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4008
                    ('Send'                             doSend                  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4009
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4010
                    ('Return'                           doReturn                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4011
                    ('Restart'                          doRestart               )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4012
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4013
"
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4014
                    ('Add Breakpoint'                   addBreakpoint           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4015
                    ('Remove Breakpoint'                removeBreakpoint        )   
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4016
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4017
                ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4018
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4019
        self allowBreakPointsInDebugger ifFalse:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4020
            items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4021
                        ('Allow Breakpoints && halt in Debugger'      doNotIgnoreBreakpoints  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4022
                    ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4023
        ] ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4024
            items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4025
                        ('Ignore Breakpoints && halt in Debugger'     doIgnoreBreakpoints  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4026
                    ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4027
        ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4028
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4029
        items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4030
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4031
                    ('Browse Implementing Class'      browseImplementingClass )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4032
                    ('Browse Receivers Class'         browseReceiversClass    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4033
                    ('Browse Receivers Class Hierarchy' browseClassHierarchy    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4034
                    ('Browse Receivers Full Protocol'   browseFullClassProtocol )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4035
                    ('Implementors'                     browseImplementors      )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4036
                    ('Implementors Of...'               browseImplementorsOf    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4037
                    ('Senders'                          browseSenders           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4038
                    ('Senders Of...'                    browseSendersOf         )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4039
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4040
                    ('Inspect Context'                  inspectContext          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4041
                    ('Copy WalkBack Text'               copyWalkbackText        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4042
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4043
                    ('QuickTerminate'                   quickTerminate          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4044
                    ('='                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4045
                    ('Exit Smalltalk (No Confirmation)' exit                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4046
                  ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4047
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4048
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4049
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4050
    m := PopUpMenu 
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4051
                itemList:items
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4052
                resources:resources
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4053
                receiver:self
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4054
                for:contextView.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4055
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4056
    verboseBacktrace ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4057
        m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4058
        m selectorAt:#showVerboseWalkback put:#showDenseWalkback
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4059
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4060
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4061
    inspecting ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4062
        m notNil ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4063
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4064
                           browseClassHierarchy browseFullClassProtocol
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4065
                           browseImplementors browseSenders inspectContext skip doStepOut).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4066
        ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4067
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4068
    self updateMenuItems.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4069
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4070
    ^ m.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4071
!
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  4072
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4073
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4074
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4075
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4076
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4077
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  4078
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4079
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4080
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4081
openIgnoreHaltNTimesDialog
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4082
    |answer n|
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4083
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4084
    [
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4085
        answer := Dialog request:'How often should this halt be ignored ?'.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4086
        answer isEmptyOrNil ifTrue:[^ self].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4087
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4088
        n := Integer readFrom:answer onError:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4089
        n notNil ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4090
            self addIgnoredHaltForCount:n orTimeDuration:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4091
            ^ self.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4092
        ].
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4093
    ] loop.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4094
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4095
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4096
openIgnoreHaltUntilTimeElapsedDialog
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4097
    |answer dT|
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4098
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4099
    [
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4100
        answer := Dialog request:'How long should this halt/breakpoint be ignored (s/m/h) ?'.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4101
        answer isEmptyOrNil ifTrue:[^ self].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4102
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4103
        dT := TimeDuration readFrom:answer onError:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4104
        dT notNil ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4105
            self addIgnoredHaltForCount:nil orTimeDuration:dT.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4106
            ^ self.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4107
        ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4108
    ] loop
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4109
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4110
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4111
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4112
    "quick terminate - the process will get no chance for cleanup actions"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4113
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4114
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4115
        self processPerform:#terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4116
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4117
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4118
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4119
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4120
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4121
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4122
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4123
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  4124
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4125
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4126
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4127
    inspecting ifFalse:[
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4128
        'DebugView [warning]: quick terminate failed' errorPrintCR.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4129
        (self confirm:'Regular quick terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4130
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4131
            Processor activeProcess terminateNoSignal.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4132
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4133
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4134
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4135
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4136
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4137
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4138
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4139
removeAllBreakpoints
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4140
    "remove all trace & breakpoints - if any"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4141
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4142
    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4143
        self withExecuteCursorDo:[
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4144
            MessageTracer unwrapAllMethods
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4145
        ]
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  4146
    ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4147
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4148
    "Modified: / 21.5.1998 / 01:44:43 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4149
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4150
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4151
removeBreakpoint
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4152
    "remove breakpoint on the selected contexts method - if any"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4153
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4154
    |implementorClass method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4155
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4156
    selectedContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4157
        ^ self showError:'** select a context first **'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4158
    ].
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4159
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4160
        ^ self
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  4161
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4162
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4163
    implementorClass := selectedContext methodClass. 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4164
    implementorClass notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4165
        method := implementorClass compiledMethodAt:selectedContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4166
        (method notNil and:[method isBreakpointed]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4167
            method clearBreakPoint
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4168
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4169
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4170
    contextView middleButtonMenu disable:#removeBreakpoint.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4171
    contextView middleButtonMenu enable:#addBreakpoint.
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4172
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4173
    "Modified: / 13.1.1998 / 00:24:47 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4174
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4175
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4176
showDenseWalkback
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4177
    |m|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4178
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4179
    m := contextView middleButtonMenu.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4180
    verboseBacktrace := false.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4181
    m labelAt:#showDenseWalkback put:(resources string:'Show Verbose WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4182
    m selectorAt:#showDenseWalkback put:#showVerboseWalkback.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4183
    self redisplayBacktrace.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4184
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4185
    "Created: / 17.11.2001 / 20:08:08 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4186
    "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
  4187
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4188
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4189
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4190
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4191
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4192
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4193
        nChainShown := nChainShown * 2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4194
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4195
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  4196
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4197
    "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
  4198
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4199
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4200
showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4201
    |m|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4202
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4203
    verboseBacktrace := true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4204
    m := contextView middleButtonMenu.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4205
    m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4206
    m selectorAt:#showVerboseWalkback put:#showDenseWalkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4207
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4208
    self redisplayBacktrace.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4209
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4210
    "Created: / 17.11.2001 / 20:07:57 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4211
    "Modified: / 17.11.2001 / 22:39:41 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4212
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4213
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4214
showingDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4215
    ^ verboseBacktrace == false.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4216
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4217
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4218
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4219
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4220
showingVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4221
    ^ verboseBacktrace == true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4222
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4223
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4224
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4225
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4226
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4227
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4228
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4229
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4230
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4231
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4232
    "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
  4233
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4234
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4235
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4236
    "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
  4237
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4238
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4239
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4240
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4241
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4242
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4243
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4244
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4245
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4246
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4247
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4248
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4249
    selector := Dialog 
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4250
                request:'Skip until entering what (matchpattern):'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4251
                initialAnswer:self goodSkipUntilSelector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4252
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4253
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4254
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4255
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4256
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4257
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4258
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4259
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4260
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4261
stopIgnoringHalts
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4262
    self class stopIgnoringHalts
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4263
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4264
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4265
toggleVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4266
    verboseBacktrace ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4267
        self showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4268
    ] ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4269
        self showDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4270
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4271
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4272
    "Modified: / 17.11.2001 / 20:07:45 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4273
! !
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
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4276
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4277
abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4278
    ^ AbortAllOperationRequest isHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4279
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4280
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4281
addIgnoredHaltForCount:countOrNil orTimeDuration:dTOrNil
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4282
    |haltingContext haltingMethod lineNrOfHalt
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4283
     oldEntry ign|
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4284
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4285
    haltingContext := self findHaltingContext.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4286
    haltingMethod := haltingContext method.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4287
    lineNrOfHalt := haltingContext lineNumber.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4288
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4289
    IgnoredHalts notNil ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4290
        oldEntry := IgnoredHalts 
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4291
                        detect:[:ign | ign isForMethod:haltingMethod line:lineNrOfHalt]
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4292
                        ifNone:nil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4293
        IgnoredHalts remove:oldEntry ifAbsent:[].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4294
    ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4295
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4296
    (countOrNil notNil or:[dTOrNil notNil]) ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4297
        IgnoredHalts isNil ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4298
            IgnoredHalts := OrderedCollection new.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4299
        ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4300
        ign := IgnoredHalt new method:haltingMethod lineNumber:lineNrOfHalt.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4301
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4302
        (countOrNil notNil and:[countOrNil > 0]) ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4303
            ign ignoreCount:countOrNil.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4304
        ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4305
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4306
        (dTOrNil notNil) ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4307
            ign ignoreEndTime:(Timestamp now + dTOrNil).
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4308
        ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4309
        IgnoredHalts add:ign.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4310
    ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4311
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4312
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4313
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4314
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4315
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4316
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4317
canAddBreakpoint
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4318
    |m|
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4319
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4320
    m := contextView middleButtonMenu.
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4321
    ^ m notNil and:[m isEnabled:#addBreakpoint]
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4322
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4323
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4324
canBrowseClassHierarchy
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4325
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4326
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4327
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4328
    ^ m notNil and:[m isEnabled:#browseClassHierarchy]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4329
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4330
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4331
canBrowseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4332
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4333
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4334
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4335
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4336
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4337
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4338
canBrowseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4339
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4340
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4341
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4342
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4343
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4344
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4345
canBrowseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4346
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4347
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4348
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4349
    ^ m notNil and:[m isEnabled:#browseReceiversClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4350
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4351
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4352
canDefineMethod
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4353
    ^ defineButton isVisible
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4354
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4355
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4356
canRemoveBreakpoint
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4357
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4358
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4359
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4360
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4361
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4362
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4363
canRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4364
    ^ restartButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4365
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4366
    "Modified: / 17.11.2001 / 19:59:49 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4367
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4368
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4369
canReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4370
    ^ returnButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4371
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4372
    "Modified: / 17.11.2001 / 19:59:18 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4373
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4374
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4375
canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4376
    ^ canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4377
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4378
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4379
contextListEntryFor:aContext
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4380
    |s|
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4381
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4382
    aContext selector == #doIt ifTrue:[
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4383
        aContext receiver isNil ifTrue:[
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4384
            ^ 'doIt' asText allBold
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4385
        ]
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4386
    ].
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4387
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4388
    s := Text new writeStream.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4389
    aContext printOn:s.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4390
    ^ s contents
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4391
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4392
    "Created: / 21-05-2007 / 13:30:24 / cg"
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4393
!
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4394
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4395
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4396
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4397
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4398
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4399
explainSelection
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4400
    |interval node definingNode crsrPos nm varIdx|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4401
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4402
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4403
    interval isEmpty ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4404
        crsrPos := codeView characterPositionOfCursor.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4405
        codeView characterUnderCursor isSeparator ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4406
            crsrPos := (crsrPos - 1) max:1    
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4407
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4408
        interval := crsrPos to:crsrPos.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4409
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4410
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4411
    node := self findNodeForInterval:interval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4412
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4413
    node notNil ifTrue: [
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4414
        node isVariable ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4415
            nm := node name.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4416
3540
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4417
            (nm = 'self') ifTrue:[
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4418
                self showValue:(actualContext methodHome receiver).
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4419
                ^ self
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4420
            ].
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4421
            (#( 'super' 'thisContext') includes:nm) ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4422
                ^ self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4423
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4424
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4425
            definingNode := node whoDefines:nm.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4426
            definingNode notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4427
                definingNode isMethod ifTrue:[
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4428
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4429
                    varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4430
                        self showValue:(actualContext methodHome argAt:varIdx)
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4431
                    ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4432
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4433
                definingNode isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4434
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4435
                    (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4436
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4437
                        ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4438
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4439
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4440
                definingNode parent notNil ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4441
                    definingNode parent isMethod ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4442
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4443
                        varIdx ~~ 0 ifTrue:[
3542
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4444
                            actualContext methodHome numVars >= varIdx ifTrue:[
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4445
                                self showValue:(actualContext methodHome varAt:varIdx)
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4446
                            ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4447
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4448
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4449
                    definingNode parent isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4450
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4451
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4452
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4453
                    ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4454
                ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4455
            ].
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4456
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4457
        ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4458
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4459
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4460
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4461
findHaltingContext
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4462
    |haltSelectors|
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4463
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4464
    haltSelectors := self haltSelectors.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4465
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4466
    contextArray keysAndValuesDo:[:idx :con |                
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4467
        |sel con2 sel2|
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4468
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4469
        sel := con selector.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4470
        (haltSelectors includes:sel) ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4471
            con method mclass == Object ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4472
                con2 := contextArray at:idx+1.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4473
                sel2 := con2 selector.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4474
                (haltSelectors includes:sel2) ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4475
                    con2 method mclass == Object ifTrue:[
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4476
                        ^ contextArray at:idx+2.
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4477
                    ]
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4478
                ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4479
                ^ contextArray at:idx+1
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4480
            ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4481
        ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4482
    ].
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4483
    ^ nil
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4484
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4485
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4486
findNodeForInterval:interval
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4487
    |tree node source|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4488
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4489
    interval isEmpty ifTrue: [^ nil].
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4490
    RBParser isNil ifTrue:[^ nil].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4491
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4492
    source := codeView contents asString string.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4493
    source := currentMethod source.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4494
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4495
^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string).
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4496
"/    Error handle:[:ex |
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4497
"/        Transcript showCR:ex description.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4498
"/    ] do:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4499
"/        Compiler parseErrorSignal catch:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4500
"/            tree := RBParser 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4501
"/                        parseMethod:source 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4502
"/                        onError: [:str :err ":nodesSoFar" | ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4503
"/        ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4504
"/        tree isNil ifTrue:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4505
"/            Compiler parseErrorSignal handle:[:ex |
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4506
"/            ] do:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4507
"/                tree := RBParser 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4508
"/                            parseDoItMethodBody:source 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4509
"/                            onError: [:str :err ":nodesSoFar" | ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4510
"/            ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4511
"/        ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4512
"/    ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4513
"/    tree isNil ifTrue:[^ nil].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4514
"/
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4515
"/    node := tree whichNodeIsContainedBy:interval.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4516
"/    node isNil ifTrue: [
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4517
"/        node := DoWhatIMeanSupport findNodeIn:tree forInterval:interval
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4518
"/    ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4519
"/    ^ node
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4520
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4521
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4522
findNodeIn:tree forInterval:interval
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4523
    <resource: #obsolete>
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4524
 
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4525
    |node|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4526
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4527
self obsoleteMethodWarning.
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4528
    node := nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4529
    tree nodesDo:[:each | 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4530
        (each intersectsInterval:interval) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4531
            (node isNil or:[node == each parent]) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4532
                node := each
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4533
            ] ifFalse:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4534
                (node parent notNil 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4535
                    and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4536
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4537
        ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4538
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4539
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4540
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4541
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4542
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4543
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4544
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4545
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4546
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4547
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4548
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4549
    ('change:*' match:current) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4550
        ^ 'update:*'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4551
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4552
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4553
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4554
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4555
haltSelectors
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4556
    ^ #( #'halt' #'halt:' #'breakPoint:' #'breakPoint:info:').
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4557
!
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4558
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4559
hasContextSelected
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4560
    ^ contextView hasSelection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4561
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4562
    "Created: / 17.11.2001 / 19:57:03 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4563
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4564
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4565
ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4566
    ^ ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4567
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4568
    "Created: / 17.11.2001 / 18:20:16 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4569
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4570
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4571
inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4572
    ^ inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4573
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4574
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4575
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4576
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4577
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4578
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4579
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4580
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4581
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4582
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4583
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4584
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4585
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4586
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4587
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4588
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4589
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4590
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4591
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4592
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4593
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4594
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4595
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4596
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4597
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4598
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4599
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4600
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4601
    inspectedProcess perform:aMessage.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4602
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4603
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4604
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4605
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4606
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4607
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4608
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4609
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4610
    "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
  4611
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4612
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4613
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4614
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4615
    contextArray notNil ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4616
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4617
            oldSelection := contextView selection.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4618
            oldSelection notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4619
                oldContext := contextArray at:oldSelection ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4620
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4621
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4622
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  4623
"/            con := contextArray at:1.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4624
            "/ force redeisplay, even if same by changing the first entry
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4625
            contextArray size > 0 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4626
                contextArray at:1 put:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4627
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4628
            self setContext:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4629
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4630
            oldContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4631
                idx := oldSelection
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4632
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4633
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4634
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4635
            contextView setSelection:idx.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4636
            idx notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4637
                self showSelection:idx
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4638
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4639
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4640
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4641
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4642
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4643
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4644
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4645
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4646
selectedInterval
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4647
    ^ codeView selectedInterval
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4648
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4649
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4650
showError:message
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4651
    codeView contents:(resources string:message).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4652
    shown ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4653
        exclusive ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4654
            "/ consider this a kludge:
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4655
            "/ if exclusive, cannot use flash, since it suspends
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4656
            "/ (but we cannot suspend here ...)
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4657
            codeView redrawInverted. device flush.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4658
            OperatingSystem millisecondDelay:200.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4659
            codeView redraw
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4660
        ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4661
            codeView flash
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4662
        ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4663
    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4664
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4665
    "Modified: / 18.11.2001 / 00:01:13 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4666
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4667
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4668
showTerminated
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4669
    self showError:'** the process has terminated **'
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4670
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4671
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4672
showValue:aValue
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4673
    "/ TODO: show value in info field
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4674
    "/ Transcript showCR:aValue printString
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4675
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4676
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4677
stepping 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4678
    ^ stepping 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4679
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4680
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4681
unstep 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4682
    stepping := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4683
    bigStep := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4684
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4685
    exitAction := nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4686
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4687
    "Modified: 22.10.1996 / 11:59:57 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4688
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4689
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4690
updateContext
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4691
    |oldContext idx|
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4692
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4693
    inspectedProcess state == #dead ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4694
        self showTerminated.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4695
        ^ self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4696
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4697
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4698
    oldContext := selectedContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4699
    [
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4700
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4701
            oldContext notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4702
                contextArray notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4703
                    idx := contextArray identityIndexOf:oldContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4704
                    idx ~~ 0 ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4705
                        self showSelection:idx
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4706
                    ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4707
                        codeView contents:('** context returned **')
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4708
                    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4709
                ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4710
            ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4711
        ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4712
    ] valueUninterruptably.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4713
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4714
    "Modified: 20.10.1996 / 18:11:24 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4715
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4716
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4717
!DebugView methodsFor:'private queries'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4718
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4719
isAborting
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4720
    ^ exitAction == #abort
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4721
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4722
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4723
setOfHiddenCallingSelectors
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4724
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4725
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4726
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4727
setOfHiddenCallingSelectors:aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4728
    setOfHiddenCallingSelectors := aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4729
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4730
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4731
!DebugView methodsFor:'private-cache handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4732
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4733
cacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4734
    "remember myself for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4735
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4736
    "caching the last debugger will make the next debugger appear
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4737
     faster, since no resources have to be allocated in the display.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4738
     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
  4739
     Otherwise, the GC will not be able to release it."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4740
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4741
    windowGroup notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4742
        windowGroup setProcess:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4743
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4744
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4745
    self releaseDebuggee.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4746
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4747
    cachable ~~ true ifTrue:[^ self].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4748
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4749
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4750
    "/ only cache if I am on the Display
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4751
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4752
    device == Display ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4753
        exclusive ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4754
            CachedExclusive := self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4755
        ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4756
            CachedDebugger := self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4757
        ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4758
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4759
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4760
    ObjectMemory stepInterruptHandler == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4761
        ObjectMemory stepInterruptHandler:nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4762
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4763
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4764
    "Modified: 10.7.1997 / 15:50:46 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4765
    "Modified: 31.7.1997 / 21:20:14 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4766
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4767
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4768
isCached
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4769
    "tell wether we are a cached debugger"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4770
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4771
    CachedExclusive == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4772
        ^ true.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4773
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4774
    CachedDebugger == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4775
        ^ true.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4776
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4777
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4778
    ^ false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4779
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4780
    "Created: 10.7.1997 / 15:22:43 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4781
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4782
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4783
releaseDebuggee
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4784
    "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
  4785
     because we may be in the cache.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4786
     Otherwise, the GC will not be able to release it"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4787
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4788
    busy := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4789
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4790
    codeView acceptAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4791
    codeView doItAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4792
    codeView contents:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4793
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4794
    receiverInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4795
    contextInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4796
    inspectedProcess := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4797
    contextArray := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4798
    selectedContext := actualContext := firstContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4799
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4800
    catchBlock := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4801
    grabber := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4802
    self autoUpdateOff.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4803
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4804
    "Created: / 10.7.1997 / 14:57:51 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4805
    "Modified: / 10.7.1997 / 15:50:38 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4806
    "Modified: / 17.11.2001 / 22:58:17 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4807
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4808
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4809
uncacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4810
    "do not remember myself any longer for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4811
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4812
    cachable := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4813
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4814
    CachedExclusive == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4815
        CachedExclusive := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4816
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4817
    CachedDebugger == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4818
        CachedDebugger := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4819
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4820
    OpenDebuggers notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4821
        OpenDebuggers remove:self ifAbsent:[].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4822
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4824
    "Modified: 31.7.1997 / 21:20:11 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4825
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4826
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4827
!DebugView methodsFor:'private-context handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4828
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4829
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4830
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4831
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4832
    ^ 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
  4833
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4834
    "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
  4835
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4836
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4837
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4838
    "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
  4839
     Most complications here arise from filtering less-interesting contexts
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4840
     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
  4841
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
  4842
    |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
  4843
     suspendContext calledBySuspendContext nm h calledContext|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4844
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4845
    (contextArray size > 0 and:[aContext == (contextArray at:1)]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4846
        "no change"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4847
        ^ false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4848
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4849
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4850
    isStoppedAtHaltOrBreakPoint := false.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4851
    firstContext := aContext.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4852
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4853
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4854
    m notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4855
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4856
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4857
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4858
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4859
    aContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4860
        text := Array with:'** no context **'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4861
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4862
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4863
        text := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4864
        contextArray := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4865
        con := aContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4866
        calledContext := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4867
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4868
        verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4869
            "/ with dense backtrace, hide the ProcessorScheduler
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4870
            "/ contexts at the top; look for a Process>>suspend*
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4871
            "/ context within the first 10 contexts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4872
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4873
            suspendContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4874
            c := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4875
            1 to:10 do:[:i |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4876
                |sel|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4877
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4878
                c notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4879
                    (sel := c selector) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4880
                        ((sel isSymbol and:[sel startsWith:'suspend'])
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4881
                        and:[c receiver isMemberOf:Process]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4882
                            suspendContext := c.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4883
                            calledBySuspendContext := cc.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4884
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4885
                    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4886
                    cc := c.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4887
                    c := c sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4888
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4889
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4890
            suspendContext notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4891
                con := suspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4892
                calledContext := calledBySuspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4893
                suspendContext := nil
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4894
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4895
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4896
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4897
        con notNil ifTrue:[    
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4898
            "/ hide the halt implementation
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4899
            (self haltSelectors includes:con selector) ifTrue:[
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4900
                (con method notNil and:[con method mclass == Object]) ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4901
                    isStoppedAtHaltOrBreakPoint := true.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4902
                    verboseBacktrace ~~ true ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4903
                        calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4904
                        con := con sender.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4905
                    ]
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4906
                ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4907
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4908
        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4909
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4910
         get them all
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4911
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4912
        count := 0.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4913
        [con notNil and:[count <= nChainShown]] whileTrue:[
8179
79462318090d ignoring for some time;
Claus Gittinger <cg@exept.de>
parents: 8171
diff changeset
  4914
            (self haltSelectors includes:con selector) ifTrue:[
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4915
                (con method notNil and:[con method mclass == Object]) ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4916
                    isStoppedAtHaltOrBreakPoint := true.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4917
                ]
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4918
            ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  4919
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4920
            [ 
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4921
                DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4922
                    'showingContext1: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4923
                    ') --> ' print. (self showingContext1:con calling:calledContext) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4924
                ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4925
                self showingContext1:con calling:calledContext
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4926
            ] whileFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4927
                calledContext := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4928
                con := con sender.
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4929
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4930
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4931
            DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4932
                'showingContext2: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4933
                ') --> ' print. (self showingContext2:con nesting:count) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4934
            ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4935
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4936
            (self showingContext2:con nesting:count) ifTrue:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4937
                "/ ignore it, if its in the same
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4938
                "/ method as the previous context
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4939
"/                (verboseBacktrace ~~ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4940
"/                and:[count > 0 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4941
"/                and:[contextArray last method == con method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4942
"/                and:[(contextArray last isBlockContext not 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4943
"/                     & con isBlockContext not) not ]]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4944
"/                    "/ skip it, if its in the same method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4945
"/                    "/ as the called context.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4946
"/                ] ifFalse:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4947
                    contextArray add:con.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4948
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4949
                    (MoreDebuggingDetail == true) ifTrue:[
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4950
                        nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4951
                    ] ifFalse:[
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4952
                        Error 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4953
                            handle:[:ex | nm := '???' ] 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4954
                            do:[ 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4955
                                nm := self contextListEntryFor:con.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4956
                            ].
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4957
                    ].
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4958
                    text add:nm.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4959
                    count := count + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4960
"/                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4961
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4962
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4963
            "/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4964
            "/ kludge: if its a wrapped method, then hide the wrap-call
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4965
            "/
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4966
            method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4967
            (method notNil and:[method isWrapped]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4968
                called := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4969
                caller := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4970
                (caller notNil and:[caller receiver == method originalMethod]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4971
                    called2 := caller.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4972
                    caller2 := caller sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4973
                    (caller2 notNil and:[caller2 method == method]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4974
                        calledContext := called2.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4975
                        con := caller2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4976
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4977
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4978
                caller := caller2 := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4979
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4980
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4981
            "/ with dense backtrace, skip the doIt methods context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4982
            "/ (its dummy anyway) and fake that contexts name
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4983
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4984
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4985
                (con isBlockContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4986
                 and:[(h := con home) == con sender
7843
7e4538e4c2cf changed #setContext:releaseInspectors: take care of nil home context
Stefan Vogel <sv@exept.de>
parents: 7830
diff changeset
  4987
                 and:[h notNil
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4988
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
7843
7e4538e4c2cf changed #setContext:releaseInspectors: take care of nil home context
Stefan Vogel <sv@exept.de>
parents: 7830
diff changeset
  4989
                 and:[h method who isNil]]]]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4990
                    calledContext := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4991
                    con := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4992
                    text removeLast.
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4993
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4994
                    text add:(self contextListEntryFor:con methodHome).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4995
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4996
                h := nil.  "/ never keep refs to contexts unless you really need them ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4997
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4998
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4999
            "/ with dense backtrace, dont show below the doIt
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5000
            ( verboseBacktrace ~~ true
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  5001
            and:[ (self setOfHiddenCallingSelectors includes:con selector) ]) ifTrue:[
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5002
                con := nil.  
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5003
            ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5004
                calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5005
                con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5006
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5007
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5008
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5009
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5010
         did we reach the end ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5011
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5012
        (con isNil or:[con sender isNil]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5013
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5014
            "/ the very last one is the startup context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5015
            "/ (in main) - it has nil as receiver and nil as selector
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5016
1906
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  5017
            (contextArray notEmpty
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  5018
            and:[contextArray last selector isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5019
                contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5020
                text removeLast
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5021
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5022
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5023
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5024
                "/ in dense mode, remove the process startup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5025
                "/ contexts (if any)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5026
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  5027
                (contextArray size > 0
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  5028
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5029
                    con selector == #start ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5030
                        contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5031
                        text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5032
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5033
                        [contextArray size > 0
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5034
                         and:[contextArray last methodHome == con]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5035
                            contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5036
                            text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5037
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5038
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5039
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5040
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5041
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5042
            m notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5043
                m enable:#showMore.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5044
            ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5045
            canShowMore := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5046
            text add:(resources string:'*** more walkback follows - click here to see them ***')
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5047
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5048
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5049
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5050
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  5051
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5052
    releaseInspectors ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5053
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5054
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5055
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5056
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5057
    m notNil ifTrue:[
6275
f7b6fd2c89d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6247
diff changeset
  5058
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5059
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  5060
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5061
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  5062
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  5063
    "Created: / 14-12-1995 / 19:10:31 / cg"
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  5064
    "Modified: / 21-05-2007 / 13:31:02 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5065
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5066
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5067
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5068
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  5069
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5070
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5071
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5072
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  5073
    con := aContext.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5074
    verboseBacktrace ifFalse:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5075
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5076
            con := con sender.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5077
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5078
                con := con sender.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5079
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5080
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5081
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5082
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5083
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5084
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5085
    "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
  5086
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  5087
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5088
showingContext1:aContext calling:calledContext
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5089
    "return false, if this (top) context is to be skipped.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5090
     Here, we hide some well known methods, which are usually not too interesting; 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5091
     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
  5092
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5093
    |recIsException sel rec senderRec mthd mthdClass calledSel calledRec|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5094
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5095
    verboseBacktrace == true ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5096
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5097
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5098
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5099
    rec := aContext receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5100
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5101
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5102
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5103
    "/ to avoid firing/waiting the lazy or future
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5104
    recIsException := (rec isLazyValue not) and:[rec isException].  
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5105
    aContext sender notNil ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5106
        senderRec := aContext sender receiver
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5107
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5108
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5109
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5110
        'showingContext1: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5111
        ') calling: (' print. calledContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5112
        ')' printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5113
    ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5114
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5115
    (#(doCallHandler: doRaise
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5116
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5117
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5118
            recIsException ifTrue:[ ^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5119
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5120
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5121
    (#(raise raiseRequest
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5122
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5123
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5124
            recIsException ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5125
                (senderRec isLazyValue not 
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5126
                and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5127
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5128
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5129
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5130
    (#(doWhile:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5131
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5132
        ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5133
            rec isBlock ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5134
                aContext sender isBlockContext ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5135
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5136
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5137
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5138
"/    calledContext notNil ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5139
"/        calledSel := calledContext selector.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5140
"/        calledRec := calledContext receiver.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5141
"/        calledRec isLazyValue ifFalse:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5142
"/            ((calledSel == #doWhile:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5143
"/            and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5144
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5145
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5146
"/            ((#(ensure: ifCurtailed: valueNowOrOnUnwindDo: valueOnUnwindDo:   
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5147
"/                ) includes:calledSel)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5148
"/             and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5149
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5150
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5151
"/            ((calledSel == #handle:do:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5152
"/             and:[calledRec isExceptionHandler])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5153
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5154
"/        ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  5155
"/    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5156
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5157
    (#(handleDo:) includes:sel)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5158
        ifTrue:[ 
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5159
            (calledRec isLazyValue not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5160
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5161
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5162
        withCursor:do:
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5163
        withWaitCursorDo:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5164
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5165
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5166
            (mthdClass == TopView) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5167
            (mthdClass == ApplicationModel) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5168
            (mthdClass == WindowGroup) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5169
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5170
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5171
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5172
        wait
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5173
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5174
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5175
            (mthdClass == Semaphore) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5176
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5177
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5178
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5179
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5180
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5181
    "Created: / 17.11.2001 / 22:24:06 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5182
    "Modified: / 17.11.2001 / 22:41:42 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5183
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5184
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5185
showingContext2:aContext nesting:nesting
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  5186
    "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
  5187
     Here, we hide some well known methods, which are usually
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5188
     not too interesting; 
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5189
     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
  5190
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5191
    |sel rec mClass 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5192
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5193
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5194
    verboseBacktrace ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5195
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5196
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5197
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5198
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5199
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5200
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5201
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5202
    sender notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5203
        senderSelector := sender selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5204
        senderReceiver := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5205
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5206
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5207
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5208
    sel == #withCursor:do: ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5209
        (mClass == WindowGroup) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5210
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5211
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5212
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5213
    or:[sel == #withWaitCursorDo:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5214
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5215
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5216
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  5217
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  5218
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5219
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5220
    or:[sel == #doWithIndex:]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5221
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5222
        mClass == OrderedCollection ifTrue:[^ false].
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5223
        mClass == Set ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5224
        mClass == Dictionary ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5225
        mClass == Interval ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5226
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5227
    (sel == #perform: 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5228
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5229
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5230
    or:[sel == #perform:with:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5231
    or:[sel == #perform:with:with:with:with:]]]])
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5232
    ifTrue:[
1499
6ed7024b9929 show a perform: context, if its the top-one.
Claus Gittinger <cg@exept.de>
parents: 1486
diff changeset
  5233
        nesting == 0 ifTrue:[^ true].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5234
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5235
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5236
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5237
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5238
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5239
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5240
    (mClass == Object) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5241
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5242
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5243
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5244
    (mClass == Method) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5245
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5246
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5247
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5248
    (mClass == SmallInteger) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5249
        (sel == #to:do:) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5250
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5251
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5252
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5253
    (mClass == Block) ifTrue:[
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5254
        sel == #ensure: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5255
        sel == #ifCurtailed: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5256
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5257
        sel == #valueOnUnwindDo: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5258
        sel == #on:do: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5259
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5260
        sel == #value ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5261
        sel == #value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5262
        sel == #value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5263
        sel == #value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5264
        sel == #value:value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5265
        sel == #value:value:value:value:Value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5266
        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
  5267
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5268
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5269
    aContext isBlockContext ifTrue:[
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5270
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5271
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5272
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5273
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5274
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5275
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5276
"/        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
  5277
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5278
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5279
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5280
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5281
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5282
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5283
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5284
        aContext home notNil ifTrue:[
5271
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5285
            aContext home receiver isLazyValue ifFalse:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5286
                (aContext home receiver isMemberOf:Semaphore) ifTrue:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5287
                    (aContext home selector == #wait) ifTrue:[^ false]
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5288
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5289
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5290
        ]
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5291
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5292
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5293
    (rec isExceptionHandler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5294
        sel == #handle:do: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5295
        sel == #handleDo: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5296
        (sel startsWith:#raise) ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5297
        sel == #answer:do: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5298
    ].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5299
    (rec isLazyValue not and:[ rec isException] ) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5300
        sel == #doRaise ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5301
        sel == #doCallHandler: ifTrue:[^ false].
2312
86cf257b86d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2309
diff changeset
  5302
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5303
            senderReceiverClass == Signal ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5304
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5305
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5306
    (mClass == Context) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5307
        sel == #unwind ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5308
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5309
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5310
    (mClass == ProcessorScheduler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5311
        sel == #interruptActive ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5312
        sel == #threadSwitch: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5313
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5314
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5315
    mClass == Process ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5316
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5317
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5318
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5319
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5320
    "Modified: / 15.1.1998 / 19:47:36 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5321
    "Created: / 17.11.2001 / 19:34:20 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5322
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5323
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  5324
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5325
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5326
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5327
    "this is a kludge:
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5328
        start a dispatchloop which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5329
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5330
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5331
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5332
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5333
    [
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5334
        [haveControl] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5335
            self controlLoopCatchingErrors
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5336
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  5337
    ] ensure:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5338
        catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5339
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5340
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5341
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5342
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5343
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5344
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5345
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5346
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5347
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5348
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5349
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5350
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5351
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5352
    (exclusive or:[windowGroup isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5353
        "if we do not have multiple processes or its a system process
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5354
         we start another dispatch loop, which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5355
         either continue, return or step is pressed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5356
         or (via the catchBlock) if an error occurs.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5357
         Since our display is an extra exclusive one, 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5358
         all processing for normal views stops here ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5359
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5360
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5361
        WindowGroup setActiveGroup:windowGroup.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5362
        SignalSet anySignal handle:[:ex |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5363
            |signal|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5364
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5365
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5366
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5367
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5368
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  5369
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5370
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5371
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5372
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5373
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5374
>>>>     :    ' , 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
  5375
>>>>     :    ' , 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
  5376
>>>>     :    ' , 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
  5377
>>>>     :    ' , 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
  5378
>>>>     :    ' , 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
  5379
>>>>     :    ' , 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
  5380
>>>>     :    ' , 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
  5381
>>>>     :    ' , 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
  5382
>>>>     :    ' , 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
  5383
>>>>     :    ' , 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
  5384
>>>>     :    ' , 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
  5385
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5386
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5387
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5388
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5389
        ] do:[
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5390
            UserNotification handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5391
                (ex signal == ActivityNotificationSignal) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5392
                    ex proceed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5393
                ].
6361
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5394
                self showError:ex description.
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5395
                ex proceed.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5396
            ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5397
                device dispatchModalWhile:[Processor activeProcess state:#debug.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5398
                                           haveControl].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5399
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5400
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5401
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5402
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5403
        "we do have multiple processes -
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5404
         simply enter the DebugViews-Windowgroup event loop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5405
         effectively suspending event processing for the currently 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5406
         active group.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5407
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5408
        SignalSet anySignal handle:[:ex |
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5409
            |answer signal eMsg|
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5410
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5411
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5412
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5413
            DebuggingDebugger ~~ true ifTrue:[
6172
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5414
                (signal == ActivityNotification) ifTrue:[
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5415
                    ex proceed
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5416
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5417
                "/
7888
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5418
                "/ ignore exceptions which say they explicitly have to be ignored
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5419
                "/
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5420
                ex catchInDebugger ifTrue:[
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5421
                    'DebugView [info]: ',signal printString,'-signal in debugger cought for close' infoPrintCR.
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5422
                    self destroy.   
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5423
                    ex reject
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5424
                ].
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5425
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5426
                "/
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5427
                "/ ignore recursive breakpoints
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5428
                "/
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5429
                (signal isControlInterrupt) ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5430
                    ignoreBreakpoints == true ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5431
                        'DebugView [info]: halt/break in debugger ignored 1' infoPrintCR.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5432
                        ex proceed
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5433
                    ].
1762
cd2bec8238fa ignare halts while handling my own events.
Claus Gittinger <cg@exept.de>
parents: 1753
diff changeset
  5434
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5435
                (signal == TerminateProcessRequest) ifTrue:[
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5436
                    "/ mhm - someone wants to shoot me down while debugging ...
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5437
                    answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5438
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5439
                                labels:#( 'Ignore' 'Close & terminate' ) 
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5440
                                values:#( #proceed #close ) 
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5441
                                default:#close.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5442
                    answer == #close ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5443
                        self destroy.   
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5444
                        ex reject
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5445
                    ].
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5446
                    ex return.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5447
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5448
                signal == RecursiveExceptionError ifTrue:[
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5449
                    (ex parameter signal == BreakPointInterrupt)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5450
                    ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5451
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5452
                        ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5453
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5454
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5455
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5456
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5457
>>>> Signal:  ' , ex signal printString , '
448
e50e23ae7dc3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 430
diff changeset
  5458
>>>>          ' , ex parameter signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5459
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5460
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5461
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5462
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5463
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5464
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5465
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5466
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5467
                    ex return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5468
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5469
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5470
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5471
            self topView raiseDeiconified.    
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5472
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5473
            eMsg := ex description.
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5474
            (ex signal isControlInterrupt) ifTrue:[
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5475
                eMsg := eMsg , Character cr asString , 'in ' , ex suspendedContext printString
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5476
            ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5477
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5478
            answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5479
                        choose:('Error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5480
                        labels:#( 'Proceed' 'Cancel' 'Debug' ) 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5481
                        values:#( #proceed #cancel #debug ) 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5482
                        default:#cancel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5483
            answer == #debug ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5484
                'DebugView [info]: cought exception - debugging' infoPrintCR.
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5485
                Debugger 
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5486
                    enterUnconditional:(ex suspendedContext) 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5487
                    withMessage:'Error in debugger: ' , eMsg
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5488
                    mayProceed:true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5489
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5490
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5491
            answer == #proceed ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5492
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5493
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5494
            ].
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5495
            'DebugView [info]: cought exception - returning' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5496
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5497
        ] do:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5498
            "/ make certain that sub-debuggers, inspectors etc.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5499
            "/ come up on my device.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5500
            Screen currentScreenQuerySignal answer:device
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5501
            do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5502
                windowGroup 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5503
                    eventLoopWhile:[Processor activeProcess state:#debug.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5504
                                      true] 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5505
                    onLeave:[]
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5506
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5507
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5508
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5509
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5510
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5511
    "Created: / 24.11.1995 / 20:33:45 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5512
    "Modified: / 18.11.2001 / 01:04:17 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5513
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5514
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5515
!DebugView methodsFor:'user interaction'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5516
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5517
checkIfCodeIsReallyModified
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5518
    |source|
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5519
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5520
    codeView modified ifFalse:[^ false].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5521
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5522
    currentMethod isNil ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5523
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5524
    ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5525
    source := currentMethod source.
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5526
    source notNil ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5527
        source string = codeView contents string ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5528
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5529
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5530
        (source string withTabsExpanded:8) = (codeView contents string withTabsExpanded:8) ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5531
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5532
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5533
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5534
    ^ true
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5535
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5536
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5537
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5538
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5539
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5540
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5541
checkSelectionChangeAllowed:newSelection
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5542
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5543
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5544
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5545
    and:[newSelection = contextView selection]) ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5546
        ^ true
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5547
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5548
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5549
    (self confirm:('Code modified - change selection anyway ?')) ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5550
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5551
    ].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5552
    codeView modified:false.
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5553
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5554
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5555
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5556
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5557
codeAccept:someCode
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5558
    "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
  5559
     and including selected method cannot be continued."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5560
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5561
    ^ 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
  5562
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5563
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5564
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5565
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5566
codeAccept:someCode unwind:doUnwind category:givenCategoryOrNil onCancel:cancelAction
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5567
    "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
  5568
     and including selected method cannot be continued."
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5569
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5570
    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5571
     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
  5572
     executed correctly - however, the code shown in the debugger is no
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5573
     longer in sync (showing the new code) with the executed code.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5574
     Therefore, we hide those contexts to avoid confusion ....
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5575
     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
  5576
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5577
    "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
  5578
     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
  5579
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5580
    |con top sel implementorClass method newMethod category|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5581
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5582
    codeView withWaitCursorDo:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5583
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5584
         find the method-home context for this one
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5585
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5586
        con := selectedContext.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5587
        top := con.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5588
        [con notNil] whileTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5589
            (con methodHome == selectedContext) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5590
                top := con
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5591
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5592
            con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5593
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5594
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5595
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5596
         use class&selector to find the method for the compilation
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5597
         and compile.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5598
        "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5599
        category := givenCategoryOrNil.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5600
        sel := selectedContext selector.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5601
        implementorClass := selectedContext methodClass.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5602
        implementorClass notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5603
            category isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5604
                method := implementorClass compiledMethodAt:sel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5605
                category := method category    
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5606
            ]    
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5607
        ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5608
            implementorClass := selectedContext receiver class.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5609
            implementorClass ~~ Object ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5610
                implementorClass := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5611
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5612
                                        initialAnswer:implementorClass name
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5613
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5614
                implementorClass size == 0 ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5615
                    ^ cancelAction value "/ cancelled
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5616
                ].
3928
70d024aa8434 class from name fix
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  5617
                implementorClass := Smalltalk classNamed:implementorClass.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5618
                implementorClass isNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5619
                    Dialog warn:'No such class'.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5620
                    ^ cancelAction value "/ cancelled
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5621
                ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5622
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5623
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5624
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5625
        "/
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5626
        "/ provide the classes nameSpace on a query;
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5627
        "/ in case we accept while in another nameSpace context,
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5628
        "/ (but for a class which is somewhere else)
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5629
        "/
6818
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5630
        (Class updateChangeFileQuerySignal, 
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5631
         Class updateChangeListQuerySignal,
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5632
         Class updateHistoryLineQuerySignal) answer:true
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5633
        do:[
6171
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5634
            Class nameSpaceQuerySignal
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5635
            answer:(implementorClass nameSpace)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5636
            do:[
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5637
                Class packageQuerySignal
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5638
                answer:(implementorClass package ? Project noProjectID)
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5639
                do:[
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5640
                    codeView contents:someCode.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5641
                    newMethod := implementorClass compilerClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5642
                                     compile:someCode
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5643
                                     forClass:implementorClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5644
                                     inCategory:category
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5645
                                     notifying:codeView.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5646
                ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5647
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5648
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5649
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5650
        inspecting ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5651
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5652
             if it worked, remove everything up to and including top
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5653
             from context chain
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5654
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5655
            (newMethod notNil and:[newMethod ~~ #Error]) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5656
                codeView modified:false.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5657
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5658
                doUnwind ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5659
                    selectedContext canReturn ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5660
                        self setContext:(top "sender").
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5661
                        exitAction := #restart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5662
                        selectedContext setLineNumber:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5663
                        self doRestart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5664
                    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5665
                        self setContext:(top sender).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5666
                        exitAction := #return.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5667
                    ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5668
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5669
                    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5670
                     continue/step is no longer possible
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5671
                    "
4120
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5672
                    "/ continueButton disable.
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5673
                    "/ canContinue := false.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5674
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5675
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5676
                contextView selection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5677
                "/ self showSelection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5678
                "/ contextView makeSelectionVisible. "/ scrollToLine:(selection - 1)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5679
            ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5680
                ^ cancelAction value
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5681
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5682
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5683
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5684
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5685
    "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
  5686
    "Modified: / 29-08-2006 / 14:22:22 / cg"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5687
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5688
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5689
codeCompletion
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5690
    |cls|
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5691
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5692
    cls := currentMethod mclass.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5693
    cls isNil ifTrue:[
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5694
        ^ self.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5695
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5696
    UserInformation handle:[:ex |
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5697
        ex proceed.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5698
    ] do:[
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5699
        DoWhatIMeanSupport codeCompletionForClass:cls codeView:codeView.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5700
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5701
!
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5702
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5703
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5704
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5705
     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
  5706
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5707
    (exclusive or:[windowGroup isNil]) ifTrue:[
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5708
        ^ true
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5709
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5710
    ^ super confirm:aString.
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5711
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5712
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  5713
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  5714
    "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
  5715
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5716
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5717
    BreakPointInterrupt handle:[:ex |
6215
fc3c3024cdfa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6178
diff changeset
  5718
        ignoreBreakpoints ifFalse:[ex reject].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5719
        'DebugView [info]: breakpoint in debugger ignored [doShowSelection.]' infoPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5720
        ex proceed
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5721
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5722
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5723
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5724
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5725
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5726
    "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
  5727
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5728
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5729
hideStackInspector 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5730
    stackInspector notNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5731
        stackInspector destroy.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5732
        stackInspector := nil.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5733
        receiverInspector origin:(0.0 @ 0.0) corner:0.5 @ 1.0.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5734
        contextInspector origin:(0.5 @ 0.0) corner:(1.0 @ 1.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5735
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5736
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5737
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5738
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5739
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5740
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5741
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5742
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5743
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5744
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5745
    evView notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5746
        focusView := evView windowGroup focusView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5747
        focusView isNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5748
            focusView := evView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5749
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5750
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5751
        anEvent isKeyPressEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5752
            key := anEvent key.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5753
            rawKey := anEvent rawKey.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5754
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5755
            inCodeView := (focusView == codeView
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5756
                          or:[focusView isComponentOf:codeView]).
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5757
            inCodeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5758
                key == #CodeCompletion ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5759
                    "/ complete the word before/under the cursor.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5760
                    self sensor 
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5761
                        pushUserEvent:#codeCompletion 
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5762
                        for:self
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5763
                        withArguments:#().
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5764
                    ^ true
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5765
                ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5766
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5767
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5768
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5769
false ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5770
        anEvent isButtonReleaseEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5771
            anEvent view == codeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5772
                (RBParser notNil and:[RBParser isLoaded])
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5773
                ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5774
                    self sensor 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5775
                        pushEvent:anEvent.  "/ must be first in queue
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5776
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5777
                    self sensor
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5778
                      pushUserEvent:#explainSelection
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5779
                      for:self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5780
                      withArguments:nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5781
                    ^ true  "/ eaten
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5782
                ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5783
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5784
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5785
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5786
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5787
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5788
    ^ false
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5789
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5790
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5791
showSelection:lineNr
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5792
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5793
     Also sent to autoselect an interesting context on entry."
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5794
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5795
    Notification 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5796
        handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5797
            [:ex |
5879
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5798
                "/ ex suspendedContext fullPrintAll.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5799
                Transcript showCR:ex description.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5800
                "/ Transcript showCR:ex parameter.
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5801
                ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5802
            ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5803
        do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5804
            [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5805
                Error 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5806
                    handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5807
                        [:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5808
                            |s con|
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5809
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5810
                            ex signal isControlInterrupt 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5811
                                ifTrue:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5812
                                    [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5813
                                        'DebugView [info]: halt/break ignored - while showing selection in debugger' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5814
                                        ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5815
                                    ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5816
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5817
                            'DebugView [info]: error when showing selection in debugger ignored' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5818
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5819
                            s := '' writeStream.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5820
                            s nextPutLine:'**** error in debugger, while extracting source'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5821
                            s nextPutLine:'****'.
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5822
                            s nextPutAll: '**** '; nextPutLine:(ex description "withCRs").
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5823
                            s nextPutLine:'****'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5824
                            con := ex suspendedContext.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5825
                            s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5826
                            con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5827
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5828
                            con fullPrintAllOn:s.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5829
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5830
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5831
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5832
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5833
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5834
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5835
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5836
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5837
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5838
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5839
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5840
"/                            ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5841
                            codeView contents:(s contents).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5842
                            ex return.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5843
                        ] 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5844
                    do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5845
                        [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5846
                            self doShowSelection:lineNr
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5847
                        ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5848
            ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5849
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5850
    "Modified: / 04-07-2006 / 14:50:06 / cg"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5851
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5852
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5853
showStackInspectorFor:con 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5854
    stackInspector isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5855
        receiverInspector origin:(0.0 @ 0.0) corner:0.3 @ 1.0.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5856
        contextInspector origin:(0.3 @ 0.0) corner:(0.6 @ 1.0).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5857
        stackInspector := InspectorView 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5858
                    origin:(0.6 @ 0.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5859
                    corner:(1.0 @ 1.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5860
                    in:contextInspector superView.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5861
        stackInspector realize.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5862
        stackInspector fieldListLabel:'Stack'.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5863
        stackInspector hideReceiver:true
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5864
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5865
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5866
    stackInspector showLast
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5867
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5868
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5869
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5870
    "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
  5871
     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
  5872
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
  5873
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
  5874
     implementorClass lineNrInMethod rec m line
193
8d0b4658249c added browse-menu function; disable inappropriate menu items; fixed walkback-copy
Claus Gittinger <cg@exept.de>
parents: 189
diff changeset
  5875
     sender selSender tryVars possibleBlocks errMsg 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5876
     codeSet highlighter evaluatorClass
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5877
     canDefine|
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5878
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5879
    canDefine := false.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5880
    currentMethod := nil.
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5881
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5882
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5883
        lineNr <= contextArray size ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5884
            con := contextArray at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5885
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5886
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5887
         clicking on the '** ...'-line shows more ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5888
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5889
        con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5890
            line := contextView list at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5891
            (line startsWith:'**') ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5892
                self showMore.
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5893
                lineNr >= contextArray size ifTrue:[
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5894
                    contextView setSelection:lineNr.
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  5895
                    con := contextArray at:lineNr ifAbsent:nil
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5896
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5897
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5898
            con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5899
                codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5900
                ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5901
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5902
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5903
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5904
        selectedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5905
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5906
        (m notNil and:[selectedContext notNil]) ifTrue:[
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5907
            m enableAll:#(browseImplementors browseSenders inspectContext)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5908
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5909
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  5910
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5911
            codeSet := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5912
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5913
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5914
             give it to the (lower right) inspector
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5915
            "
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5916
            Error handle:[:ex |
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5917
                'DebugView [warning]: error while accessing context' errorPrintCR.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5918
                contextInspector inspect:nil.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5919
ex reject.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5920
            ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5921
                contextInspector inspect:con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5922
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5923
            ].
1386
55632b45ced2 more skipping in dense backtrace
Claus Gittinger <cg@exept.de>
parents: 1372
diff changeset
  5924
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5925
            "/ show a stack inspector sometimes
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5926
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5927
            con hasStackToShow ifTrue:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5928
                self showStackInspectorFor:con
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5929
            ] ifFalse:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5930
                self hideStackInspector
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5931
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5932
7328
30ae29195ebc avoid unneeded test
Stefan Vogel <sv@exept.de>
parents: 7112
diff changeset
  5933
            homeContext := con methodHome.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5934
            con canReturn ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5935
                returnButton enable. restartButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5936
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5937
                returnButton disable. restartButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5938
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5939
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5940
            lineNrInMethod := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5941
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5942
            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5943
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5944
            homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5945
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5946
                 mhmh - an optimized block
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5947
                 should get the block here, and get the method from
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5948
                 that one ...
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5949
                 But in the current version, there is no easy way to get to the block
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5950
                 since that one is not in the context.
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5951
                 A future new block calling scheme will fix this 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5952
                 (passing the block instead of the home as block argument).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5953
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5954
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5955
                "temporary kludge - peek into the sender context.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5956
                 If its a do-like method and there is a single block variable 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5957
                 in the args or temporaries, that must be the one.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5958
                 This helps in some cases.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5959
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5960
                (sender := con sender) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5961
                    tryVars := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5962
                    (selSender := sender selector) notNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  5963
                        ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5964
                            tryVars := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5965
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5966
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5967
                    tryVars ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5968
                        possibleBlocks := sender argsAndVars select:[:v | v isBlock].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5969
                        possibleBlocks := possibleBlocks select:[:b | b home isNil].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5970
                        possibleBlocks size == 1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5971
                            method := possibleBlocks first method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5972
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5973
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5974
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5975
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5976
                "fetch rec here - so we wont need context in doItAction"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5977
                rec := homeContext receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5978
                sel := homeContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5979
                sel notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5980
                    canAccept := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5981
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5982
                    implementorClass := homeContext methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5983
                    implementorClass isNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  5984
                        Error handle:[:ex |
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5985
                            ex signal == BreakPointInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5986
                                ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5987
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5988
                            code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5989
                            code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5990
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5991
                                
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5992
                            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5993
                            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5994
                        ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5995
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5996
                             special: look if this context was created by
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5997
                             valueWithReceiver kind of method invocation;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5998
                             if so, grab the method from the sender and show it
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5999
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6000
                            ((sender := homeContext sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  6001
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6002
                            and:[sender receiver isMethod]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6003
                                method := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6004
                                canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6005
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6006
                                (method := con method) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6007
                                    canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6008
                                ]
5664
c97684d07432 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5504
diff changeset
  6009
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6010
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6011
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6012
                        method := implementorClass compiledMethodAt:sel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6013
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6014
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6015
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6016
            code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6017
                errMsg := nil.
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6018
                method isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6019
                    "/ fall back heuristics
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6020
                    con isBlockContext ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6021
                        ((sender := con sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  6022
                        and:[((sender selector ? '') startsWith:'value')
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6023
                        and:[sender receiver isBlock]]) ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6024
                            code := sender receiver source.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6025
                        ]
5170
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6026
                    ] ifFalse:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6027
                        ((sender := con sender) notNil
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6028
                        and:[((sender selector ? '') startsWith:'valueWith')
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6029
                        and:[sender receiver isMethod]]) ifTrue:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6030
                            method := sender receiver.
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6031
                        ]
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  6032
                    ]
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  6033
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6034
                method notNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  6035
                    Error handle:[:ex |
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  6036
                        ex signal isControlInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  6037
                            ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  6038
                        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6039
                        code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  6040
                        code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  6041
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  6042
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6043
                        canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6044
                        ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6045
                    ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6046
                        self sensor shiftDown ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6047
                            code := method decompiledSource
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6048
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6049
                            code := method source.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6050
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6051
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6052
                    code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6053
                        method sourceFilename notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6054
                            codeView contents:(resources 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6055
                                                       string:'** no sourcefile: %1 **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6056
                                                       with:method sourceFilename).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6057
                            codeView flash.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6058
                            codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6059
                        ] ifFalse:[
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6060
                            [
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6061
                                |src|
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6062
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6063
                                src := String streamContents:[:s | Decompiler decompile:method to:s].
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6064
                                codeView contents:src.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6065
                                codeSet := true.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6066
                            ] on: Error do:[
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6067
                                errMsg := '** no source **'
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6068
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6069
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6070
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6071
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6072
                    homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6073
                        errMsg := '** sorry; cannot show code of all optimized blocks (yet) **'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6074
                    ] ifFalse:[
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  6075
                        errMsg := '** no method - no source **'.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  6076
                        canDefine := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6077
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6078
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6079
                errMsg notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6080
                   self showError:errMsg.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6081
                   codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6082
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6083
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6084
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6085
            code isNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  6086
                "/ canAccept := false.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6087
                codeSet ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6088
                    codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6089
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6090
            ] ifFalse:[
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  6091
                lineNrInMethod == 0 ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  6092
                    (method notNil and:[method isJavaMethod]) ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  6093
                        lineNrInMethod := method lineNumber
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6094
                    ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6095
                    "/ guess lineNumber from sent-messages selector
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6096
                    "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6097
                    lineNrInMethod == 0 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6098
                        |conIdx sentContext messages|
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6099
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6100
                        conIdx := contextArray identityIndexOf:con.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6101
                        conIdx > 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6102
                            sentContext := contextArray at:conIdx-1.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6103
                            sentContext isBlockContext ifFalse:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6104
                                (method notNil and:[code notNil]) ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6105
                                    messages := method messagesSent.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6106
                                    messages size == 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6107
                                        sentContext selector == messages first ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6108
                                            lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6109
                                        ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6110
                                    ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6111
                                ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6112
                            ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6113
                        ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  6114
                    ].
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  6115
                ].
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  6116
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  6117
                UserPreferences current syntaxColoring ifTrue:[
2709
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6118
                    implementorClass isNil ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6119
                        (con isBlockContext
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6120
                        and:[con home isNil
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6121
                        and:[con guessedHome notNil]])
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6122
                        ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6123
                            implementorClass := con guessedHome mclass
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6124
                        ]
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  6125
                    ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6126
                    implementorClass notNil ifTrue:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6127
                        (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  6128
                            code size < 100000 ifTrue:[
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6129
                                Error handle:[:ex |
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6130
                                ] do:[
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6131
                                    code := highlighter formatMethod:code in:implementorClass.
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6132
                                ]
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  6133
                            ]
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6134
                        ]
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6135
                    ]
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  6136
                ].
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  6137
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  6138
"/                code ~= (codeView contents) ifTrue:[
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  6139
                    codeView setContents:code.
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  6140
"/                ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6141
                (lineNrInMethod notNil 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6142
                and:[lineNrInMethod ~~ 0
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6143
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  6144
lineNrInMethod == 255 ifFalse:[
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6145
                    (lineNrInMethod == 255 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6146
                    and:[method notNil
1960
e317efd283b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1926
diff changeset
  6147
                    and:[method hasCode not]]) ifTrue:[
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6148
                        "/ means: do not really know in interpreted methods
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6149
                        codeView selectFromLine:255 col:1 toLine:codeView list size + 1 col:0.
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6150
                    ] ifFalse:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6151
                        codeView selectLine:lineNrInMethod.
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6152
                    ].
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6153
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  6154
].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6155
                ] ifFalse:[
1694
Claus Gittinger <cg@exept.de>
parents: 1693
diff changeset
  6156
                    codeView unselect.
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6157
                    codeView scrollToTop
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  6158
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6159
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6160
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6161
            codeView acceptEnabled:canAccept.
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  6162
            canAccept ifTrue:[
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  6163
                codeView acceptAction:[:code | self codeAccept:code asString]
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  6164
            ] ifFalse:[
6046
81b2da24a0b6 Send #beep to window instead of device
Stefan Vogel <sv@exept.de>
parents: 6034
diff changeset
  6165
                codeView acceptAction:[:code | self beep]
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  6166
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6167
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6168
            receiverInspector inspect:rec.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  6169
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6170
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6171
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6172
             the one below is wrong: currently, the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6173
             evaluator cannot handle passed contexts.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6174
             Once it does, pass con as in:-arg
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6175
            "
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6176
            (rec isJavaObject
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6177
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6178
                "/ although a java object, use the smalltalk parser here for doIts.
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6179
                evaluatorClass := Parser
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6180
            ] ifFalse:[
7999
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  6181
                (method notNil and:[method mclass notNil]) ifTrue:[
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  6182
                    evaluatorClass := method mclass evaluatorClass.
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  6183
                ] ifFalse:[
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  6184
                    evaluatorClass := rec class evaluatorClass.
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  6185
                ].
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6186
            ].
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6187
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6188
            codeView doItAction:[:theCode |
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  6189
                             evaluatorClass 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6190
                                 evaluate:theCode 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6191
                                 in:actualContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6192
                                 receiver:rec 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6193
                                 notifying:codeView 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  6194
                                 logged:true 
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6195
                                 ifFail:nil 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6196
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6197
            currentMethod := method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6198
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6199
            selectedContext := homeContext.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6200
            actualContext := con
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6201
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6202
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6203
        codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6204
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6205
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6206
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6207
    con isContext ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6208
        sendButton disable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6209
    ] ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6210
        sendButton enable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6211
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6212
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6213
    "clear out locals to prevent keeping around unneeded contexts 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6214
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6215
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6216
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6217
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6218
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6219
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6220
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6221
    canDefine ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6222
        defineButton beVisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6223
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6224
        defineButton beInvisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6225
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6226
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6227
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6228
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6229
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6230
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6231
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6232
    "Created: / 14-08-1997 / 20:15:00 / cg"
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6233
    "Modified: / 27-10-2006 / 14:19:32 / cg"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6234
!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6235
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6236
updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6237
    |m mthd cls mCls rCls|
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6238
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6239
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6240
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6241
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6242
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6243
    m notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6244
        m disable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6245
        m disable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6246
        canShowMore ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6247
            m disable:#showMore
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6248
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6249
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6250
        selectedContext notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6251
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6252
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6253
            mthd := selectedContext method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6254
            mthd notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6255
                cls := mCls := mthd containingClass.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6256
                mthd isBreakpointed ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6257
                    m enable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6258
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6259
                    m enable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6260
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6261
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6262
            rCls := selectedContext receiver class.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6263
            cls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6264
                cls := rCls
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6265
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6266
            cls notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6267
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6268
                rCls == mCls ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6269
                    m disable:#browseReceiversClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6270
                ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6271
                mCls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6272
                    m disable:#browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6273
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6274
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6275
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6276
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6277
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6278
        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6279
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6280
        ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6281
    ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6282
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6283
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6284
!DebugView::IgnoredHalt methodsFor:'accessing'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6285
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6286
ignoreCount:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6287
    ignoreCount := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6288
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6289
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6290
ignoreEndTime:something
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6291
    ignoreEndTime := something.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6292
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6293
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6294
method
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  6295
    ^ methodHolder at:1 
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6296
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6297
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6298
method:methodArg lineNumber:lineNumberArg 
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  6299
    methodHolder := WeakArray with:methodArg.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6300
    lineNumber := lineNumberArg.
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6301
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6302
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6303
!DebugView::IgnoredHalt methodsFor:'misc'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6304
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6305
decrementIgnoreCount
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6306
    ignoreCount notNil ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6307
        ignoreCount > 0 ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6308
            ignoreCount := ignoreCount - 1
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6309
        ]
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6310
    ]
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6311
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6312
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6313
!DebugView::IgnoredHalt methodsFor:'queries'!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6314
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6315
isForMethod:aMethod line:line
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6316
    line = lineNumber ifFalse:[^ false].
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  6317
    (methodHolder at:1) == aMethod ifFalse:[^ false].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6318
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6319
    ^ true
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6320
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6321
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6322
isHaltIgnored
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6323
    ignoreCount notNil ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6324
        ^ ignoreCount > 0 
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6325
    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6326
    ignoreEndTime notNil ifTrue:[
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6327
        ^ ignoreEndTime > Timestamp now
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6328
    ].
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6329
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6330
    ^ true
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6331
!
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6332
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6333
isHaltIgnoredInMethod:aMethod line:line
8180
b261a7df4412 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8179
diff changeset
  6334
"/ Transcript showCR:'ign ',aMethod printString,' at ',lineNumber printString.
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6335
    line = lineNumber ifFalse:[^ false].
8171
93039ca52c1b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8170
diff changeset
  6336
    (methodHolder at:1) == aMethod ifFalse:[^ false].
8170
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6337
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6338
    ^ self isHaltIgnored
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6339
! !
f958ad430417 halt ignore
Claus Gittinger <cg@exept.de>
parents: 8161
diff changeset
  6340
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6341
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6342
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6343
version
8180
b261a7df4412 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8179
diff changeset
  6344
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.438 2008-06-05 11:25:30 cg Exp $'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6345
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6346
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6347
DebugView initialize!