DebugView.st
author Claus Gittinger <cg@exept.de>
Tue, 06 Feb 2007 18:52:10 +0100
changeset 7628 a2c2878586ea
parent 7627 4676f12a2497
child 7632 dec23bc52ab8
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
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
    28
		canShowMore exitAbort reportButton setOfHiddenCallingSelectors'
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    29
	classVariableNames:'CachedDebugger CachedExclusive OpenDebuggers MoreDebuggingDetail
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    30
		DebuggingDebugger VerboseBacktraceDefault DefaultIcon
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
    31
		DefaultDebuggerBackgroundColor InitialNCHAINShown'
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    32
	poolDictionaries:''
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
    33
	category:'Interface-Debugger'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    34
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    35
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    36
!DebugView class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    37
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    38
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    39
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    40
 COPYRIGHT (c) 1989 by Claus Gittinger
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    41
              All Rights Reserved
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    42
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    43
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    44
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    45
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    46
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    47
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    48
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    49
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    50
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    51
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    52
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    53
"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
    54
    This class implements a graphical debugger interface.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    55
    The debugger usually sits on top of the faulting process,
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    56
    taking over its event processing. 
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    57
    (this is different from other Smalltalk debuggers, which control
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    58
     the debuggee as a separate process. Consider this an historic
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    59
     leftover - the debugger was one of the first applications written for
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    60
     ST/X; however, why should we change it without a particular need ...).
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    61
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
    62
    Only the 'stopped' debugged process is affected;
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    63
    other processes continue to respond to events.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    64
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    65
    The one exception is when an error occurs within the dispatcher process
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    66
    or in one of the eventhandler processes - in this case, the debugger
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    67
    will sit on an exclusive display connection.
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    68
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    69
    The whole debugging will be changed, once the required process primitives
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    70
    are available, which allow control of another processes execution
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    71
    (i.e. single-step, restart & return). The setup will be changed then,
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    72
    to have the debugger control the debuggee (i.e. two processes)
35
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    73
cd5cb075fd6a *** empty log message ***
claus
parents: 29
diff changeset
    74
    See additional information in 'doc/misc/debugger.doc'.
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    75
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    76
    Notice: the DebugView class caches the last used debugger in a class
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    77
    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
    78
    a halfway destroyed one) is kept there. You will notice this, if a
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    79
    debugger comes up without showing any contents. In this case, close
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    80
    (or destroy) the broken debugView, and execute
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    81
        Debugger newDebugger
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    82
    which removes the cached debugger and forces creation of a new one the
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    83
    next time. This is a temporary workaround - the debugger will be fixed to
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
    84
    avoid this problem.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    85
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    86
    [author:]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    87
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    88
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 494
diff changeset
    89
    [see also:]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    90
        Exception Signal
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
    91
        Process
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    92
"
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
    93
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    94
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
    95
!DebugView class methodsFor:'initialization'!
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
    96
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
    97
initialize
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
    98
    InitialNCHAINShown := 20.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
    99
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   100
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   101
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   102
    "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
   103
    "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
   104
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   105
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   106
reinitialize
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   107
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   108
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   109
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   110
!DebugView class methodsFor:'instance creation'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   111
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   112
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   113
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   114
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   115
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   116
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   117
    self enter:thisContext sender withMessage:'debugger entered' mayProceed:true.
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   118
!
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   119
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   120
enter:aContext withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   121
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   122
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   123
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   124
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   125
    ^ self
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   126
        enter:aContext 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   127
        withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   128
        mayProceed:true
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   129
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   130
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   131
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   132
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   133
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   134
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   135
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   136
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   137
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   138
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
   139
    |active|
93
claus
parents: 92
diff changeset
   140
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
   141
    StepInterruptPending := nil.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   142
    ControlInterrupt handle:[:ex |
4676
c809ebc38db9 more info on an ignored breakpoint
Claus Gittinger <cg@exept.de>
parents: 4644
diff changeset
   143
        '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
   144
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   145
        ex proceed
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   146
    ] do:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   147
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   148
         well, it could be a stepping or sending debugger up there;
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   149
         in this case, return to it. This happens, when a stepping process
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   150
         runs into an error (for example, a halt). In this case, we want the
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   151
         stepping debugger to come up again instead of a new one.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   152
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   153
        OpenDebuggers notNil ifTrue:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   154
            active := Processor activeProcess.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   155
            OpenDebuggers do:[:aDebugger |
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   156
                (aDebugger inspectedProcess == active) ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   157
                    aDebugger device isOpen ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   158
                        "/ 'entering stepping debugger again' printNL.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   159
                        aDebugger unstep.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   160
                        aDebugger setLabelFor:aString in:active.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   161
                        aDebugger mayProceed:mayProceed.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   162
                        ^ aDebugger enter:aContext select:nil.
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   163
                    ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   164
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   165
            ]
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   166
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   167
    ].
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   168
    ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   169
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   170
    "Modified: / 18.11.2001 / 00:48:03 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   171
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   172
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   173
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   174
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   175
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   176
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   177
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   178
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   179
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   180
    StepInterruptPending := nil.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   181
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   182
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   183
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   184
    ControlInterrupt handle:[:ex |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   185
        '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
   186
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   187
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   188
    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   189
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   190
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   191
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   192
    aDebugger isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   193
        'DebugView [error]: cannot open debugger' errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   194
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   195
        mayProceed ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   196
            (Dialog confirm:'Error/Breakpoint cought.\\Press Continue or Abort.' withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   197
                   yesLabel:'Continue' noLabel:'Abort')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   198
            ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   199
                ^ nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   200
            ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   201
        ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   202
            self information:'Error cought.\\Press OK to abort the operation.' withCRs.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   203
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   204
        AbortOperationRequest raise.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   205
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   206
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   207
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   208
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   209
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   210
    aDebugger enter:aContext select:nil.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   211
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   212
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   213
    "
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   214
        nil halt
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   215
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   216
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   217
    "Modified: / 18.11.2001 / 00:29:23 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   218
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   219
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   220
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   221
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   222
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   223
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   224
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   225
    self enter:(thisContext sender) withMessage:message mayProceed:true.
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   226
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   227
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   228
new
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   229
    "return a new DebugView. 
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   230
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   231
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   232
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   233
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   234
    |debugger currentScreen debuggerDevice|
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   235
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   236
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   237
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   238
    currentScreen notNil ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   239
        (currentScreen suppressDebugger) ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   240
            "/ 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
   241
            ^ nil.
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   242
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   243
        (currentScreen mayOpenDebugger) ifFalse:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   244
            "/ 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
   245
            currentScreen := Screen default.
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   246
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   247
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   248
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   249
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   250
     need a blocking debugger if no processes or 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   251
     or if its a timing/interrupt process 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   252
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   253
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   254
    Processor activeProcessIsSystemProcess ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   255
        ((debugger := CachedExclusive) isNil 
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   256
        or:[debugger device ~~ currentScreen
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   257
        or:[currentScreen isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   258
        or:[currentScreen isOpen not]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   259
            debugger := self newExclusive
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   260
        ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   261
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   262
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   263
        CachedDebugger notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   264
            (CachedDebugger device ~~ currentScreen 
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   265
            or:[currentScreen isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   266
            or:[currentScreen isOpen not]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   267
                CachedDebugger := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   268
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   269
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   270
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   271
        (debugger := CachedDebugger) notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   272
            CachedDebugger := nil.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   273
        ] ifFalse:[
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   274
            debuggerDevice := currentScreen.
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   275
            debuggerDevice isNil ifTrue:[
2352
a1fd9c17f18a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   276
                "/ use the default display
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   277
                debuggerDevice := Screen default.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   278
            ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   279
            (debuggerDevice isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   280
            or:[debuggerDevice isOpen not
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   281
            "/ or:[debuggerDevice mayOpenDebugger not]
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   282
            ]) ifTrue:[
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   283
                "/ no debugger
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   284
                ^ nil.
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   285
            ].
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   286
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   287
            Screen currentScreenQuerySignal answer:debuggerDevice
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   288
            do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   289
                debugger := super new.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   290
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   291
            debugger label:'Debugger'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   292
            debugger icon:self defaultIcon.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   293
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   294
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   295
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   296
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   297
    "Modified: 31.7.1997 / 21:20:27 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   298
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   299
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   300
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   301
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   302
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   303
    |debugger|
105
claus
parents: 101
diff changeset
   304
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   305
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   306
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   307
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   308
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   309
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   310
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   311
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   312
!
claus
parents: 101
diff changeset
   313
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   314
openOn:aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   315
    "start a  debugger on aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   316
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   317
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   318
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   319
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   320
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   321
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   322
    aProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   323
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   324
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   325
            nm := (nm contractTo:17) , '-' , aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   326
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   327
            nm := aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   328
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   329
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   330
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   331
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   332
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   333
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   334
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   335
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   336
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   337
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
   338
! !
claus
parents: 124
diff changeset
   339
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   340
!DebugView class methodsFor:'cleanup'!
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   341
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   342
lowSpaceCleanup 
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   343
    "in low memory situations, give up cached debuggers"
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   344
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   345
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   346
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   347
    OpenDebuggers := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   348
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   349
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   350
     DebugView lowSpaceCleanup
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   351
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   352
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   353
    "Modified: 18.4.1996 / 16:48:03 / cg"
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   354
!
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   355
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   356
newDebugger
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   357
    "force creation of a new debugger (give up cached debuggers)"
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   358
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   359
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   360
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   361
    OpenDebuggers := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   362
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   363
    (Debugger isBehavior and:[Debugger name = #DebugView]) ifTrue:[
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   364
        Debugger := self
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   365
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   366
485
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
     DebugView newDebugger
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   369
    "
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
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   372
!DebugView class methodsFor:'defaults'!
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   373
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   374
defaultIcon
1148
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   375
    "return the debuggers default window icon"
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   376
7622
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   377
    <resource: #style (#DEBUGGER_ICON #DEBUGGER_ICON_FILE)>
1148
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   378
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   379
    |nm i resources|
1148
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   380
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   381
    (i := DefaultIcon) isNil ifTrue:[
7627
4676f12a2497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7622
diff changeset
   382
        i := ToolbarIconLibrary debugIt20x20Icon.
7622
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   383
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   384
"/        resources := self classResources.
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   385
"/        i := resources at:#DEBUGGER_ICON' default:nil.
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   386
"/        i isNil ifTrue:[
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   387
"/            nm := resources at:#DEBUGGER_ICON_FILE default:'Debugger.xbm'.
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   388
"/            i := Smalltalk imageFromFileNamed:nm forClass:self.
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   389
"/            i isNil ifTrue:[
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   390
"/                i := StandardSystemView defaultIcon
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   391
"/            ]
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   392
"/        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   393
        i notNil ifTrue:[
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
   394
            DefaultIcon := i := i onDevice:Display
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   395
        ]
1082
72cac7557903 cache defaultIcon
Claus Gittinger <cg@exept.de>
parents: 1076
diff changeset
   396
    ].
1148
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   397
    ^ i
d53ae051fa82 defaultIcon improved
Claus Gittinger <cg@exept.de>
parents: 1136
diff changeset
   398
7622
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   399
    "
7628
a2c2878586ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7627
diff changeset
   400
     DefaultIcon := nil
7622
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   401
    "
e57a3df70ace Fix defaultIcon
Stefan Vogel <sv@exept.de>
parents: 7553
diff changeset
   402
7627
4676f12a2497 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7622
diff changeset
   403
    "Modified: / 19-03-1997 / 20:48:34 / ca"
7628
a2c2878586ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7627
diff changeset
   404
    "Modified: / 06-02-2007 / 18:52:10 / cg"
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   405
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   406
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   407
defaultVerboseBacktrace
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   408
    ^ VerboseBacktraceDefault
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   409
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   410
    "Created: 11.1.1997 / 12:14:35 / cg"
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   411
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   412
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   413
defaultVerboseBacktrace:aBoolean
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   414
    VerboseBacktraceDefault := aBoolean
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   415
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   416
    "Created: 11.1.1997 / 12:14:44 / cg"
3441
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
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   419
updateStyleCache
6136
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   420
    "extract values from the styleSheet and cache them in class variables"
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   421
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   422
    <resource: #style (#'debugView.viewBackgroundColor')>
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   423
3441
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   424
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   425
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   426
    "Modified: / 17.11.2001 / 17:31:42 / cg"
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   427
! !
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   428
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   429
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   430
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   431
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   432
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   433
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   434
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   435
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   436
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   437
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   438
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   439
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   440
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   441
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   442
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   443
    <resource: #menu>
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
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   446
     #(Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   447
        (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   448
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   449
            label: 'View'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   450
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   451
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   452
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   453
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   454
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   455
                  enabled: canShowMore
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   456
                  label: 'Show more WalkBack'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   457
                  itemValue: showMore
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   458
                  translateLabel: true
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   459
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   460
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   461
                  label: 'Show verbose WalkBack'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   462
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   463
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   464
                  isVisible: showingDenseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   465
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   466
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   467
                  label: 'Show dense WalkBack'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   468
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   469
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   470
                  isVisible: showingVerboseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   471
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   472
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   473
                  label: '-'
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   474
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   475
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   476
                  label: 'Exit'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   477
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   478
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   479
                  isVisible: isInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   480
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   481
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   482
                  label: 'Close Debugger and Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   483
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   484
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   485
                  isVisible: isNotInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   486
                )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   487
               )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   488
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   489
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   490
            )
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: 'Process'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   494
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   495
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   496
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   497
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   498
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   499
                  label: 'Continue'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   500
                  itemValue: doContinue
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   501
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
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: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   505
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   506
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   507
                  label: 'Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   508
                  itemValue: doAbort
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   509
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   510
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   511
               (MenuItem
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   512
                  enabled: abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   513
                  label: 'Abort All'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   514
                  itemValue: doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   515
                  translateLabel: true
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   516
                )
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   517
               (MenuItem
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   518
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   519
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   520
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   521
                  label: 'Terminate'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   522
                  itemValue: doTerminate
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   523
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   524
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   525
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   526
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   527
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   528
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   529
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   530
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   531
            label: 'Context'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   532
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   533
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   534
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   535
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   536
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   537
                  enabled: canReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   538
                  label: 'Return'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   539
                  itemValue: doReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   540
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   541
                )
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   542
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   543
                  enabled: canRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   544
                  label: 'Restart'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   545
                  itemValue: doRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   546
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   547
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   548
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   549
                  label: '-'
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   550
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   551
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   552
                  enabled: hasContextSelected
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   553
                  label: 'Inspect'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   554
                  itemValue: inspectContext
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   555
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   556
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   557
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   558
                  label: 'Copy WalkBack Text'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   559
                  itemValue: copyWalkbackText
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   560
                  translateLabel: true
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
                  label: 'Bookmark Method in SystemBrowser'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   564
                  itemValue: addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   565
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   566
                )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   567
               )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   568
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   569
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   570
            )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   571
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   572
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   573
            label: 'Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   574
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   575
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   576
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   577
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   578
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   579
                  enabled: canBrowseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   580
                  label: 'Browse Implementing Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   581
                  itemValue: browseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   582
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   583
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   584
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   585
                  enabled: canBrowseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   586
                  label: 'Browse Receivers Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   587
                  itemValue: browseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   588
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   589
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   590
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   591
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   592
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   593
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   594
                  enabled: canBrowseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   595
                  label: 'Browse Receivers Class Hierarchy'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   596
                  itemValue: browseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   597
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   598
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   599
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   600
                  enabled: canBrowseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   601
                  label: 'Browse Receivers Full Protocol'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   602
                  itemValue: browseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   603
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   604
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   605
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   606
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   607
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   608
            )
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
            label: 'Selector'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   612
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   613
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   614
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   615
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   616
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   617
                  label: 'Browse Implementors...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   618
                  itemValue: browseImplementorsOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   619
                  translateLabel: true
3269
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: 'Browse Senders...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   623
                  itemValue: browseSendersOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   624
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   625
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   626
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   627
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   628
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   629
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   630
                  enabled: canDefineMethod
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   631
                  label: 'Define'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   632
                  itemValue: doDefineMethod
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   633
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   634
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   635
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   636
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   637
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   638
            )
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
            label: 'Breakpoint'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   642
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   643
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   644
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   645
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   646
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   647
                  enabled: canRemoveBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   648
                  label: 'Remove'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   649
                  itemValue: removeBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   650
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   651
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   652
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   653
                  label: 'Remove all Breakpoints'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   654
                  itemValue: removeAllBreakpoints
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   655
                  translateLabel: true
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   656
                )
5875
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
                  label: '-'
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   659
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   660
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   661
                  enabled: canAddBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   662
                  label: 'Add'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   663
                  itemValue: addBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   664
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   665
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   666
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   667
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   668
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   669
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   670
                  label: 'Allow Breakpoints in Debugger'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   671
                  itemValue: allowBreakPointsInDebugger:
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   672
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   673
                  indication: allowBreakPointsInDebugger
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   674
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   675
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   676
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   677
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   678
            )
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
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   681
            label: 'Help'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   682
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   683
            startGroup: right
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   684
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   685
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   686
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   687
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   688
                  label: 'Debuggers Documentation'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   689
                  itemValue: openHTMLDocument:
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   690
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   691
                  argument: 'tools/debugView/TOP.html'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   692
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   693
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   694
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   695
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   696
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   697
                  label: 'About DebugView...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   698
                  itemValue: openAboutThisApplication
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   699
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   700
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   701
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   702
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   703
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   704
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   705
          )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   706
         )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   707
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   708
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   709
      )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   710
! !
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   711
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   712
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   713
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
   714
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   715
    "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
   716
     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
   717
     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
   718
     actually occured.
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   719
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   720
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   721
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   722
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   723
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   724
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   725
    idx := 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   726
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[        
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   727
        someContexts at:idx put:con.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   728
        con := con sender.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   729
        idx := idx + 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   730
    ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   731
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   732
    ^ someContexts at:idx.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   733
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   734
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   735
interestingContextIndexIn:aContextArray 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   736
    "return an interesting contexts offset, or nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   737
     This is the context initially shown in the walkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   738
     We move up the calling chain, skipping all intermediate Signal
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   739
     and Exception contexts, to present the context in which the error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   740
     actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   741
     Just for your convenience :-)"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   742
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   743
    |con found offset sel prev ex rcvr nMax idx|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   744
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   745
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   746
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   747
    con := aContextArray at:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   748
    con isBlockContext ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   749
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   750
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   751
    "/ find the exception
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   752
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   753
    1 to:5 do:[:i |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   754
        con := aContextArray at:i ifAbsent:nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   755
        con notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   756
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   757
            sel := con selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   758
            ((sel == #halt) or:[sel == #halt:]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   759
                ^ i + 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   760
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   761
            ((sel == #raise) or:[sel == #raiseRequest]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   762
                rcvr := con receiver.
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   763
                (rcvr isLazyValue not and:[rcvr isException]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   764
                    ex := rcvr.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   765
                    offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   766
                    found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   767
                ] ifFalse:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   768
                    (rcvr isLazyValue not and:[rcvr isExceptionCreator]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   769
                        offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   770
                        found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   771
                    ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   772
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   773
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   774
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   775
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   776
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   777
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   778
     if this is a noHandler exception, skip forward
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   779
     to the erronous context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   780
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   781
    ex notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   782
        ex signal == Signal noHandlerSignal ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   783
            found := ex suspendedContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   784
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   785
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   786
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   787
    found isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   788
        "/ this is a kludge, but convenient.
6579
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   789
        "/ show the place where the error (divisionByZero...) happend,
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   790
        "/ not where the signal was raised.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   791
        sel := (aContextArray at:1) methodHome selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   792
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   793
        "/ typically a DivisionByZero - show caller of division
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   794
        (sel == #//      
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   795
        or:[sel == #/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   796
        or:[sel == #\\]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   797
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   798
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   799
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   800
        "/ 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
   801
        (sel == #doesNotUnderstand:) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   802
            ^ 3 min:nMax
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
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   805
        "/ show the bad method; not where the Signal was raised...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   806
        (sel == #noByteCode) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   807
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   808
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   809
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   810
        "/ show the place of the halt; not where the HaltSignal was raised...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   811
        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   812
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   813
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   814
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   815
        "/ show the place of error-call; not where the ErrorSignal was raised...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   816
        (sel == #error:mayProceed:) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   817
            nMax > 2 ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   818
                sel := (aContextArray at:2) selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   819
                sel == #mustBeBoolean ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   820
                    ^ 3
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   821
                ].
5896
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   822
                sel == #assert:message: ifTrue:[
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   823
                    nMax > 3 ifTrue:[
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   824
                        sel := (aContextArray at:3) selector.
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   825
                        sel == #assert: ifTrue:[
6579
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   826
                            nMax > 4 ifTrue:[
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   827
                                sel := (aContextArray at:4) selector.
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   828
                                sel == #deny: ifTrue:[
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   829
                                   ^ 5
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   830
                                ]
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   831
                            ].
5896
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   832
                            ^ 4
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   833
                        ].
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   834
                        ^ 3
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   835
                    ].
682f34cf0bd2 assert-signalization shows assert-sender initially
Claus Gittinger <cg@exept.de>
parents: 5884
diff changeset
   836
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   837
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   838
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   839
        ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   840
        "/ 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
   841
        (sel == #signalInterrupt:) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   842
            ^ 2
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   843
        ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   844
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   845
        "/ show the place of error-call; not where the ErrorSignal was raised...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   846
        (sel == #error:) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   847
            ^ 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   848
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   849
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   850
        "/ show the place of the assert; not where the Signal was raised...
5114
d56730e36dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5110
diff changeset
   851
        (sel == #assert:) ifTrue:[
6579
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   852
            nMax > 2 ifTrue:[
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   853
                sel := (aContextArray at:2) selector.
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   854
                sel == #deny: ifTrue:[
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   855
                    ^ 3
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   856
                ].
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   857
            ].
5114
d56730e36dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5110
diff changeset
   858
            ^ 2
d56730e36dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5110
diff changeset
   859
        ].
d56730e36dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5110
diff changeset
   860
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   861
        "/ show the place of the send; not where the Signal was raised...
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   862
        (sel == #subclassResponsibility) ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   863
            ^ 2
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   864
        ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   865
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   866
        "/ 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
   867
        ( #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   868
            #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   869
            #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   870
            #elementBoundsError:
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   871
            "/ #subclassResponsibility
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   872
        ) includes:sel) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   873
            idx := 2.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   874
            [ idx <= 3 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   875
                and:[ 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   876
                    sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   877
                    #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   878
                      #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   879
                      #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   880
                      #elementBoundsError: ) includes:sel
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   881
                ]
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   882
            ] whileTrue:[ idx := idx + 1 ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   883
            sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   884
            (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
   885
            ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   886
                sel := (aContextArray at:idx+1) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   887
                (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
   888
                ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   889
                    sel := (aContextArray at:idx+2) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   890
                    (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
   891
                    ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   892
                        ^ idx+3
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   893
                    ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   894
                    ^ idx+2
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   895
                ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   896
                ^ idx+1
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   897
            ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   898
            ^ idx
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   899
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   900
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   901
        ^ 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   902
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   903
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   904
    con := found.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   905
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   906
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   907
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   908
     Exception contexts
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   909
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   910
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   911
    rcvr := con receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   912
    [   
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   913
        rcvr isLazyValue not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   914
    ] whileTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   915
        prev := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   916
        nMax > offset ifFalse:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   917
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   918
        offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   919
        con := aContextArray at:offset.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   920
        rcvr := con receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   921
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   922
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   923
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   924
     now, we are one above the raising context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   925
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   926
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   927
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   928
     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
   929
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   930
    ( #( halt halt: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   931
         error error: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   932
         doesNotUnderstand: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   933
         subclassResponsibility 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   934
         primitiveFailed) includes:con selector) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   935
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   936
        con selector == #doesNotUnderstand: ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   937
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   938
             one more up, to get to the originating context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   939
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   940
            con := aContextArray at:(offset + 1).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   941
            con isNil ifTrue:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   942
            offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   943
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   944
        con := aContextArray at:(offset + 1).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   945
        con isNil ifTrue:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   946
        offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   947
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   948
        "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   949
         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
   950
        "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   951
        (prev receiver == BreakPointInterrupt) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   952
            offset := offset + 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   953
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   954
    ].
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
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   957
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   958
    "Created: / 17.11.2001 / 20:37:49 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   959
    "Modified: / 17.11.2001 / 21:44:06 / cg"
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   960
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   961
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   962
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   963
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   964
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   965
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   966
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   967
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   968
    m notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   969
        self updateMenuItems.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   970
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   971
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   972
            abortButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   973
            m enable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   974
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   975
            abortButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   976
            m disable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   977
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   978
        exclusive ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   979
            terminateButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   980
            m disable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   981
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   982
            terminateButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   983
            m enable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   984
        ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   985
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   986
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   987
    mayProceed == false ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   988
        continueButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   989
        m notNil ifTrue:[m disable:#doContinue].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   990
    ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   991
        continueButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   992
        m notNil ifTrue:[m enable:#doContinue]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   993
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   994
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   995
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   996
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   997
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
   998
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   999
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1000
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1001
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1002
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1003
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1004
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1005
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1006
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1007
        '==> enter: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1008
        ') select: ' print. initialSelectionOrNil printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1009
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1010
    thisContext isRecursive ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1011
        "/ care for the special case, were the Debugger was autoloaded.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1012
        "/ in this case, thisContext IS recursive, but thats no error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1013
        "/ condition.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1014
        foundNoByteCodeContext := false.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1015
        foundExitContext := false.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1016
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1017
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1018
        [
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1019
         foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1020
         and:[ foundExitContext not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1021
         and:[c notNil 
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1022
         and:[c selector ~~ #enter:withMessage:mayProceed:
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1023
        ]]]]
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1024
        whileTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1025
            c selector == #exit_unwindThenDo: ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1026
                foundExitContext := true
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1027
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1028
            c selector == #noByteCode ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1029
                foundNoByteCodeContext := true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1030
            ].
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1031
            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
  1032
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1033
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1034
        (foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1035
        and:[ foundExitContext not]) ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1036
            ('DebugView [warning]: reentered') errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1037
        
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1038
            ^ MiniDebugger 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1039
                enter:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1040
                withMessage:'DebugView [error]: recursive error (in debugger)'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1041
                mayProceed:mayProceed.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1042
        ].
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1043
        foundExitContext ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1044
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1045
            ^ self.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1046
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1047
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1048
2591
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1049
"/'entering: ' print. aContext printCR.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1050
"/'initial: ' print. initialSelectionOrNil printCR.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1051
    iAmNew := drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1052
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1053
    verboseBacktrace := VerboseBacktraceDefault ? false.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1054
3580
61ea1626f2ab lineNumbers (kludge)
Claus Gittinger <cg@exept.de>
parents: 3570
diff changeset
  1055
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1056
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1057
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1058
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1059
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1060
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1061
    stepHow := nil.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  1062
    nChainShown := InitialNCHAINShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1063
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1064
    "/ if debugger is entered while a box has grabbed the
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1065
    "/ 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
  1066
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1067
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1068
    "/ 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
  1069
    "/    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
  1070
    "/    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
  1071
    Screen allScreens do:[:aScreen |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1072
        aScreen ungrabPointer.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1073
        aScreen ungrabKeyboard.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1074
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1075
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1076
    ("inspectedProcess suspendedContext isNil 
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  1077
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1078
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1079
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1080
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1081
        terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1082
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1083
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1084
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1085
    iAmNew ifFalse:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1086
        "/ not the first time - disable buttons & menus
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1087
        "/ from the previous life
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1088
        self turnOffAllButtons.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1089
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1090
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1091
        m notNil ifTrue:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1092
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1093
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1094
        verboseBacktrace 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1095
            ifTrue:[self showVerboseWalkback]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1096
            ifFalse:[self showDenseWalkback].
132
claus
parents: 127
diff changeset
  1097
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1098
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  1099
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1100
    windowGroup isNil ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1101
        self windowGroup: WindowGroup new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1102
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1103
    ].
132
claus
parents: 127
diff changeset
  1104
    exclusive ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1105
        "/ create a (modal) windowGroup for myself
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1106
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1107
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1108
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1109
        "/ create a windowGroup with a synchronous sensor for me
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1110
3769
3c6e68ee0593 dont access the windowGroups sensor directly
penk
parents: 3723
diff changeset
  1111
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1112
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1113
    windowGroup setProcess:Processor activeProcess.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1114
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1115
     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
  1116
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1117
    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
  1118
"/'after setContext; first is ' print.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1119
"/(contextArray at:1 ifAbsent:nil) printCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1120
    self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1121
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1122
    m := contextView middleButtonMenu.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1123
    m notNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1124
        self updateMenuItems.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1125
5821
a5ef70570c6c Check for AbortOperationRequest in suspendedContext.
Stefan Vogel <sv@exept.de>
parents: 5798
diff changeset
  1126
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1127
            abortButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1128
            m enable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1129
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1130
            abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1131
            m disable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1132
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1133
        exclusive ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1134
            terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1135
            m disable:#doTerminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1136
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1137
            terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1138
            m enable:#doTerminate.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1139
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1140
        iAmNew ifFalse:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1141
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1142
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1143
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1144
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1145
    mayProceed == false ifTrue:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1146
        continueButton disable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1147
        m notNil ifTrue:[m disable:#doContinue].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1148
    ] ifFalse:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1149
        continueButton enable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1150
        m notNil ifTrue:[m enable:#doContinue]
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1151
    ].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1152
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1153
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1154
     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
  1155
     Otherwise, its probably better to do a map, which shows the
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1156
     view at the previous position, without a need for the user to set the
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1157
     position again
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1158
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1159
    iAmNew ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1160
        self remap.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1161
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1162
        self realize.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1163
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1164
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1165
    exclusive ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1166
        self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1167
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
  1168
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1169
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
  1170
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
  1171
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
  1172
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1173
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
  1174
    ].
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1175
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1176
    self raise.
1486
6ae442626f20 wait until visible before starting to draw
Claus Gittinger <cg@exept.de>
parents: 1484
diff changeset
  1177
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1178
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1179
    exitAction := nil.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1180
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1181
    "/ 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
  1182
    "/ 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
  1183
    "/ closedown of the debugger.
3701
ef73aac8e8d5 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 3694
diff changeset
  1184
    [self controlLoop] ifCurtailed:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1185
        windowGroup notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1186
            windowGroup setProcess:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1187
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1188
        self destroy
132
claus
parents: 127
diff changeset
  1189
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1190
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1191
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1192
    "/ 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
  1193
    "/ 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
  1194
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1195
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1196
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1197
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1198
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1199
    ObjectMemory stepInterruptHandler == self ifTrue:[
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1200
        ObjectMemory stepInterruptHandler:nil.
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1201
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1202
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1203
    "/ not stepping - close window
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1204
    (exitAction ~~ #step) ifTrue:[
3165
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1205
        lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1206
        lastSelectionInContextInspector := contextInspector selectedKeyName.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1207
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1208
        contextInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1209
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1210
        self unmap.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1211
        device flush.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1212
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1213
        (exitAction == #abort) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1214
            self exit_abort.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1215
        ].
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1216
        (exitAction == #abortAll) ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1217
            self exit_abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1218
        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1219
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1220
        (exitAction == #return) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1221
            self exit_return.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1222
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1223
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1224
        (exitAction == #restart) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1225
            self exit_restart.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1226
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1227
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1228
        (exitAction == #quickTerminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1229
            self exit_quickTerminate.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1230
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1231
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1232
        (exitAction == #terminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1233
            self exit_terminate.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1234
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1235
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1236
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1237
    "/ stepping - window stays open
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1238
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1239
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1240
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  1241
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1242
    grabber notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1243
        device grabPointerInView:grabber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1244
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1245
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1246
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1247
    (exitAction == #step) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1248
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1249
         schedule another stepInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1250
         - must enter myself into the collection of open debuggers,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1251
           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
  1252
           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
  1253
           come up (instead of a new one)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1254
         - must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1255
           look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1256
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1257
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1258
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1259
        "/ also must care for stepping into a return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1260
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1261
        steppedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1262
            Processor activeProcess forceInterruptOnReturnOf:steppedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1263
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1264
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1265
        OpenDebuggers isNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1266
            OpenDebuggers := WeakIdentitySet new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1267
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1268
        OpenDebuggers add:self.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1269
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1270
        self label:'single stepping - please wait ...'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1271
        stepping := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1272
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1273
        ObjectMemory stepInterruptHandler:self.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1274
        Processor activeProcess stepInterruptHandler:self.
2963
c2df17414c2e next version
penk
parents: 2914
diff changeset
  1275
        ObjectMemory flushCaches.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1276
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1277
        Context singleStepInterruptRequest isHandled ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1278
            "bigStep" steppedContextLineno notNil ifTrue:[   
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1279
                Context singleStepInterruptRequest raiseWith:#next
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1280
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1281
                Context singleStepInterruptRequest raiseWith:#step
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1282
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1283
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1284
            "/ see if we came here through an interrupt-action
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1285
            "/ (i.e. aProcess interruptWith:...)
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1286
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1287
            enteredByInterrupt := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1288
            con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1289
            [enteredByInterrupt not
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1290
             and:[con notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1291
             and:[con ~~ aContext]]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1292
                ((sel := con selector) == #timerInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1293
                or:[sel == #ioInterrupt]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1294
                    enteredByInterrupt := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1295
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1296
                    con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
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
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1299
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1300
            ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1301
1456
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1302
            DebuggingDebugger == true ifTrue:[
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1303
                enteredByInterrupt printCR.
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1304
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1305
            enteredByInterrupt ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1306
                "/ dont want to step through all intermediate
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1307
                "/ (scheduler-) contexts; place a return-trap on the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1308
                "/ one right below the interesting one
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1309
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1310
"/                'special unwind return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1311
                con unwindThenDo:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1312
                                  Processor activeProcess stepInterruptHandler:self.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1313
                                  ObjectMemory stepInterruptHandler:self.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1314
                                  InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1315
                                  StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1316
                                  InterruptPending := 1].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1317
            ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1318
"/                'normal step return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1319
                skipLineNr ~~ #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1320
                    StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1321
                    InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1322
                ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1323
"/                    'step for return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1324
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1325
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1326
            InStepInterrupt := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1327
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1328
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1329
        OpenDebuggers notNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1330
            OpenDebuggers remove:self ifAbsent:[].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1331
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1332
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1333
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1334
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  1335
    "Modified: / 17.4.1997 / 13:01:32 / stefan"
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  1336
    "Created: / 30.10.1997 / 21:08:18 / cg"
1926
3fbf7b616bcd changed an errorPrint into an infoPrint
Claus Gittinger <cg@exept.de>
parents: 1917
diff changeset
  1337
    "Modified: / 13.10.1998 / 19:56:59 / ps"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1338
    "Modified: / 18.11.2001 / 00:48:47 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1339
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1340
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1341
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1342
    "/ 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
  1343
    "/ 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
  1344
    "/ 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
  1345
    "/ 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
  1346
    "/ 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
  1347
    "/ done in the #enter:select method.    
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1348
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1349
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1350
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1351
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1352
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1353
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1354
    "/ 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
  1355
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1356
    "/ 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
  1357
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1358
    "/ 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
  1359
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1360
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1361
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1362
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1363
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1364
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1365
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1366
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1367
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1368
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1369
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1370
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1371
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1372
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1373
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1374
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1375
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1376
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1377
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1378
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1379
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1380
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1381
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1382
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1383
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1384
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1385
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1386
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1387
            con unwindAndRestart.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1388
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1389
        'DebugView [warning]: cannot restart selected context' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1390
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1391
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1392
    "Created: / 16.11.2001 / 17:23:17 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1393
    "Modified: / 17.11.2001 / 23:37:09 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1394
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1395
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1396
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1397
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1398
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1399
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1400
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1401
         if there is a selection in the codeView,
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1402
         evaluate it and use the result as return value
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1403
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1404
"/ 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
  1405
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1406
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1407
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1408
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1409
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1410
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1411
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1412
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1413
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1414
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1415
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1416
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1417
"/                        retVal := codeView doItAction value:s.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1418
"/                    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1419
"/                ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1420
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1421
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1422
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1423
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1424
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1425
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1426
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1427
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1428
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1429
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1430
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1431
            con unwind:retVal.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1432
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1433
        'DebugView [warning]: cannot return from selected context' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1434
    ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1435
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1436
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1437
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1438
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1439
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1440
exit_terminate
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1441
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1442
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1443
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1444
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1445
    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1446
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1447
        ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1448
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1449
    ] do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1450
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1451
        Processor activeProcess terminate.
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
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1454
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1455
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1456
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1457
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1458
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1459
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1460
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1461
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1462
    "/ 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
  1463
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1464
    "/ 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
  1465
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1466
    "/ 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
  1467
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1468
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1469
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1470
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1471
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1472
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1473
    self cacheMyself.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1474
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1475
    Error handle:[:ex |
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1476
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1477
        ex description infoPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1478
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1479
        ex proceed
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1480
    ] do:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1481
        "/ find the enter:select context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1482
        con := thisContext sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1483
        [   
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1484
            (con selector == #enter:select:)
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1485
            and:[con receiver == self]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1486
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1487
        whileFalse:[ con := con sender ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1488
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1489
        "/ 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
  1490
        con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1491
            con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1492
            con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1493
                con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1494
                con isBlockContext ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1495
                    con := con methodHome.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1496
                ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1497
            ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1498
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1499
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1500
        con unwindThenDo:aBlock.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1501
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1502
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1503
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1504
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1505
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1506
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1507
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1508
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1509
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1510
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1511
    initialSelectionOrNil notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1512
        ^ initialSelectionOrNil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1513
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1514
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1515
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1516
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1517
     - 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
  1518
     - 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
  1519
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1520
     - 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
  1521
       in the context where the raise actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1522
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1523
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1524
    con2 := (contextArray at:2 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1525
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1526
    exitAction == #step ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1527
        selection := 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1528
        steppedContext notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1529
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1530
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1531
             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
  1532
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1533
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1534
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1535
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1536
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1537
                    selection := 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1538
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1539
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1540
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1541
             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
  1542
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1543
            ((h := con1 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1544
             and:[h == steppedContext]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1545
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1546
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1547
                (con2 notNil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1548
                and:[(h := con2 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1549
                and:[h == steppedContext]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1550
                    selection := 2
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1551
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1552
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1553
            h := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1554
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1555
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1556
        steppedContext isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1557
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1558
             preselect a more interesting context, (where halt/raise was ...)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1559
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1560
            "/ selection := self class interestingContextIndexFrom:aContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1561
            selection := self class interestingContextIndexIn:contextArray.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1562
            selection := selection min:(contextArray size).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1563
        ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1564
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1565
             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
  1566
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1567
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1568
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1569
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1570
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1571
                    selection := 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1572
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1573
            ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1574
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1575
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1576
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1577
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1578
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1579
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1580
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1581
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1582
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1583
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1584
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1585
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1586
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1587
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1588
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1589
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1590
openOn:aProcess
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1591
    "enter the debugger on a process - 
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1592
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1593
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1594
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1595
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1596
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1597
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1598
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1599
    verboseBacktrace := VerboseBacktraceDefault ? false.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1600
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1601
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1602
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1603
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1604
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1605
    inspectedProcess := aProcess.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  1606
    nChainShown := InitialNCHAINShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1607
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1608
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1609
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1610
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1611
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1612
    continueButton label:(resources string:'Continue').
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1613
    w := continueButton preferredExtent x.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1614
    continueButton label:(resources string:'Stop').
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1615
    w := w max:(continueButton preferredExtent x).
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1616
    continueButton preferredExtent:(w @ continueButton preferredExtent y).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1617
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1618
    aProcess state == #run ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1619
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1620
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1621
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1622
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1623
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1624
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1625
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1626
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1627
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1628
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1629
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1630
    ].
5451
971dc52a38de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5450
diff changeset
  1631
    continueButton preferredExtent:(w @ continueButton preferredExtent y).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1632
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1633
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1634
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1635
92
claus
parents: 90
diff changeset
  1636
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1637
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1638
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1639
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1640
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1641
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1642
    updateButton := Button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1643
                        label:(resources string:'Update')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1644
                        action:[self updateContext]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1645
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1646
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1647
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1648
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1649
    monitorToggle releaseAction:[self autoUpdateOff].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1650
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1651
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1652
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1653
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1654
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1655
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1656
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1657
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1658
    stepButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1659
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1660
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1661
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1662
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1663
    aProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1664
        terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1665
        abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1666
        continueButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1667
        returnButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1668
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1669
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1670
        (aProcess suspendedContext isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1671
        or:[aProcess isSystemProcess]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1672
            terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1673
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1674
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1675
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1676
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1677
        catchBlock := [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1678
            catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1679
            contextArray := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1680
            selectedContext := actualContext := firstContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1681
            steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1682
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1683
            (exitAction == #terminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1684
                aProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1685
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1686
            (exitAction == #quickTerminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1687
                aProcess terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1688
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1689
            super destroy
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1690
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1691
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1692
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1693
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  1694
    "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
  1695
    "Modified: 17.4.1997 / 13:01:57 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1696
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1697
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1698
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1699
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1700
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1701
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1702
    selection notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1703
        self showSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1704
        contextView setSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1705
        selection > 1 ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1706
            contextView scrollToLine:(selection - 1)
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1707
        ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1708
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1709
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1710
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1711
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1712
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1713
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1714
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1715
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1716
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1717
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1718
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1719
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1720
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1721
    stepButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1722
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1723
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1724
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1725
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1726
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1727
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1728
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1729
flyByHelpTextFor:aComponent
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1730
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1731
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1732
    aComponent == abortButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1733
        s := 'Abort (Unwind to EventLoop)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1734
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1735
    aComponent == terminateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1736
        s := 'Terminate Process (Close View)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1737
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1738
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1739
        continueButton label = (resources string:'Stop') ifTrue:[
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1740
            s := 'Stop'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1741
        ] ifFalse:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1742
            s := 'Continue Execution'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1743
        ]
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1744
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1745
    aComponent == stepButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1746
        s := 'Step to Next Send'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1747
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1748
    aComponent == nextButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1749
        s := 'Step to Next Line'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1750
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1751
    aComponent == nextOverButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1752
        s := 'Step Over'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1753
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1754
    aComponent == nextOutButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1755
        s := 'Step Out'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1756
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1757
    aComponent == sendButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1758
        s := 'Send Next Message'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1759
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1760
    aComponent == returnButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1761
        s := 'Return from selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1762
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1763
    aComponent == restartButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1764
        s := 'Restart selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1765
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1766
    aComponent == monitorToggle ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1767
        s := 'Toggle Monitoring'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1768
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1769
    aComponent == updateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1770
        s := 'Update'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1771
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1772
    s notNil ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1773
        ^ resources string:s
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1774
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1775
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1776
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1777
    "Modified: 29.8.1995 / 23:38:54 / claus"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1778
    "Modified: 4.3.1997 / 01:54:03 / cg"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1779
!
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1780
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1781
helpTextFor:aComponent
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1782
    |s|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1783
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1784
    aComponent == abortButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1785
        s := 'HELP_ABORT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1786
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1787
    aComponent == terminateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1788
        s := 'HELP_TERMINATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1789
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1790
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1791
        continueButton label = (resources string:'Stop') ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1792
            s := 'HELP_STOP'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1793
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1794
            s := 'HELP_CONTINUE'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1795
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1796
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1797
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1798
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1799
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1800
    aComponent == nextButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1801
        s := 'HELP_NEXT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1802
    ].
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1803
    aComponent == nextOverButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1804
        s := 'HELP_NEXTOVER'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1805
    ].
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1806
    aComponent == nextOutButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1807
        s := 'HELP_NEXTOUT'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1808
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1809
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1810
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1811
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1812
    aComponent == sendButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1813
        s := 'HELP_SEND'
266
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
    aComponent == returnButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1816
        s := 'HELP_RETURN'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1817
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1818
    aComponent == restartButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1819
        s := 'HELP_RESTART'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1820
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1821
    aComponent == contextView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1822
        s := 'HELP_WALKBACK'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1823
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1824
    aComponent == codeView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1825
        s := 'HELP_CODEVIEW'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1826
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1827
    aComponent == monitorToggle ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1828
        s := 'HELP_MONITOR'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1829
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1830
    aComponent == updateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1831
        s := 'HELP_UPDATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1832
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1833
"/    aComponent == stopButton ifTrue:[
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1834
"/        s := 'HELP_STOP'
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1835
"/    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1836
    (aComponent isComponentOf:receiverInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1837
        s := 'HELP_REC_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1838
    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1839
    (aComponent isComponentOf:contextInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1840
        s := 'HELP_CON_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1841
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1842
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1843
    s notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1844
        ^ resources string:s
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1845
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1846
    ^ nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1847
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1848
    "Modified: 29.8.1995 / 23:38:54 / claus"
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1849
    "Modified: 4.3.1997 / 01:54:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1850
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1851
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  1852
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1853
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1854
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1855
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1856
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1857
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1858
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1859
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1860
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1861
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1862
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1863
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1864
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1865
    self checkIfCodeIsReallyModified ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1866
        (self confirm:('Code modified - exit anyway ?'))
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1867
        ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1868
            ^ self
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1869
        ]
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1870
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1871
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1872
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1873
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1874
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1875
    inspecting ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1876
        "I am running on top of a process, abort or continue it"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1877
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1878
        windowGroup notNil ifTrue:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1879
            windowGroup setProcess:nil.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1880
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1881
        self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1882
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1883
        "/
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1884
        "/ catch invalid return;
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1885
        "/ this happens, when my process has somehow died (quickterminate)
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1886
        "/ and I am a leftOver view, which gets terminated via the launchers
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1887
        "/ #destroy-window function.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1888
        "/
3124
540feceebffa invalidReturnSignal -> cannotReturnSignal
Claus Gittinger <cg@exept.de>
parents: 3121
diff changeset
  1889
        Context cannotReturnSignal handle:[:ex |
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1890
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1891
            self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1892
            Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1893
            ex return.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1894
        ] do:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1895
            AbortOperationRequest isHandled ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1896
                self doAbort.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1897
            ] ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1898
                self doContinue
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1899
            ]
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1900
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1901
        "/ We don't reach this point normally
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1902
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1903
        Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1904
        self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1905
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1906
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  1907
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1908
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1909
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1910
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1911
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1912
    "Modified: / 10.7.1997 / 17:15:41 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1913
    "Modified: / 16.11.2001 / 17:38:15 / cg"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1914
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1915
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1916
initialize
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1917
    |menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel oldLayout v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1918
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1919
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1920
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
  1921
    font := font onDevice:device.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1922
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
  1923
    verboseBacktrace := VerboseBacktraceDefault ? false.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1924
    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
  1925
                                  "/ the debugger
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  1926
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1927
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1928
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1929
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1930
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1931
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1932
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1933
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1934
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1935
    mH := 0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1936
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1937
    menuPanel := MenuPanel in:self.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1938
    menuPanel verticalLayout:false.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  1939
    menuPanel menu:(self class menuSpec).
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1940
    menuPanel receiver:self.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1941
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1942
    mH := menuPanel preferredExtent y.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1943
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1944
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1945
    oldLayout := true.
3462
71af03cac0c7 oldLayout was better
Claus Gittinger <cg@exept.de>
parents: 3447
diff changeset
  1946
    "/ oldLayout := false.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1947
    oldLayout ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1948
        bpanel := HorizontalPanelView in:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1949
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1950
        self initializeButtonsIn:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1951
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1952
        bH := bpanel preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1953
        bpanel origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1954
               extent:(1.0 @ bH).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1955
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1956
                            origin:(0.0 @ (mH + bH))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1957
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1958
                            in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1959
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1960
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1961
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1962
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1963
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1964
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1965
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1966
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1967
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1968
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1969
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1970
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1971
    ] ifFalse:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1972
        bpanel1 := HorizontalPanelView in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1973
        self initializeButtons1In:bpanel1.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1974
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1975
        bH1 := bpanel1 preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1976
        bpanel1 origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1977
                extent:(1.0 @ bH1).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1978
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1979
                            origin:(0.0 @ (mH + bH1))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1980
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1981
                                in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1982
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1983
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1984
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1985
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1986
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1987
        bpanel2 := HorizontalPanelView in:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1988
        self initializeButtons2In:bpanel2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1989
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1990
        bH2 := bpanel2 preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1991
        bpanel2 origin:(0.0 @ 0.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1992
                extent:(1.0 @ bH2).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1993
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1994
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1995
        v origin:(0.0 @ bH2) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1996
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1997
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1998
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1999
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2000
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2001
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2002
    DefaultDebuggerBackgroundColor notNil ifTrue:[
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2003
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2004
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2005
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2006
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2007
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2008
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2009
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2010
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2011
    "Modified: / 17.11.2001 / 20:50:24 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2012
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2013
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2014
initializeAbortButtonIn:bpanel 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2015
    abortButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2016
                label:(resources string:'Abort')
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2017
                action:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2018
                    abortButton turnOffWithoutRedraw.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2019
                    self doAbort
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2020
                ]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2021
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2022
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2023
    "Created: / 17.11.2001 / 20:56:47 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2024
    "Modified: / 17.11.2001 / 20:57:17 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2025
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2026
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2027
initializeButtons1In:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2028
    |separator|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2029
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2030
    bpanel horizontalLayout:#leftMax.  "was: #left. "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2031
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2032
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2033
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2034
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2035
"/    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2036
"/    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2037
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2038
    self initializeContinueButtonIn:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2039
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2040
    separator := View extent:(10 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2041
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2042
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2043
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2044
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2045
    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2046
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2047
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2048
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2049
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2050
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2051
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2052
    "Modified: / 17.11.2001 / 21:02:59 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2053
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2054
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2055
initializeButtons2In:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2056
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2057
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2058
    bpanel horizontalLayout:#leftMax.  "was: #left. "
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2059
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2060
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2061
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2062
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2063
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2064
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2065
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2066
"/ 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
  2067
"/ 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
  2068
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2069
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2070
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2071
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2072
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2073
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2074
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2075
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2076
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2077
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2078
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2079
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2080
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2081
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2082
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2083
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2084
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2085
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2086
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2087
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2088
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2089
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2090
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2091
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2092
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2093
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2094
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2095
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2096
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2097
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2098
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2099
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2100
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2101
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2102
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2103
    self initializeReturnButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2104
    self initializeRestartButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2105
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2106
    "Modified: / 17.11.2001 / 21:01:38 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2107
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2108
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2109
initializeButtonsIn:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2110
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2111
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2112
    bpanel horizontalLayout:#left.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2113
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2114
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2115
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2116
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2117
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2118
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2119
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2120
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2121
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2122
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2123
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2124
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2125
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2126
    self initializeReturnButtonIn:bpanel.    
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2127
    self initializeRestartButtonIn:bpanel.    
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2128
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2129
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2130
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2131
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2132
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2133
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2134
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2135
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2136
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2137
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2138
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2139
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2140
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2141
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2142
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2143
"/        img := (resources at:'next')
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
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2146
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2147
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2148
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2149
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2150
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2151
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2152
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2153
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2154
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2155
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2156
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2157
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2158
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2159
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2160
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2161
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2162
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2163
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2164
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2165
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2166
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2167
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2168
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2169
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2170
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2171
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2172
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2173
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2174
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2175
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2176
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2177
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2178
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2179
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2180
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2181
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2182
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2183
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2184
    "Created: / 17.11.2001 / 20:56:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2185
    "Modified: / 17.11.2001 / 21:03:18 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2186
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2187
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2188
initializeCodeViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2189
    |v|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2190
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2191
    v := HVScrollableView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2192
                for:CodeView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2193
                miniScrollerH:true
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2194
                miniScrollerV:false
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2195
                in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2196
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2197
"/    v autoHideScrollBars:true.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2198
    codeView := v scrolledView.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2199
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2200
    ^ v
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
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2203
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2204
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2205
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2206
    v := HVScrollableView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2207
                for:SelectionInListView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2208
                miniScrollerH:true
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2209
                miniScrollerV:false
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2210
                in:panel.
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2211
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2212
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2213
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2214
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2215
    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
  2216
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2217
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2218
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2219
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2220
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2221
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2222
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2223
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2224
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2225
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2226
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2227
!
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2228
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2229
initializeContinueButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2230
    continueButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2231
                label:(resources string:'Continue')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2232
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2233
                    continueButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2234
                    self doContinue
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2235
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2236
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2237
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2238
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2239
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2240
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2241
initializeDefineButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2242
    defineButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2243
                label:(resources string:'Define')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2244
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2245
                    defineButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2246
                    self doDefine
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2247
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2248
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2249
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2250
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2251
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2252
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2253
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2254
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2255
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2256
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2257
    hpanel := VariableHorizontalPanel in:panel.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2258
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2259
    receiverInspector := InspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2260
                                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
  2261
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2262
    receiverInspector fieldListLabel:'Receiver'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2263
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2264
    contextInspector := ContextInspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2265
                                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
  2266
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2267
    contextInspector fieldListLabel:'Context'.
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  2268
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2269
    ^ hpanel
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2270
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2271
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2272
initializeNextButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2273
    nextButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2274
                label:(resources string:'Next')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2275
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2276
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2277
                    self doNext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2278
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2279
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2280
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2281
    "Created: / 17.11.2001 / 20:59:38 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2282
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2283
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2284
initializeReportButtonIn:bpanel 
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2285
    reportButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2286
                label:(resources string:'Report by Mail')
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2287
                action:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2288
                    reportButton turnOffWithoutRedraw.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2289
                    self doOpenReportMailApp.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2290
                ]
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2291
                in:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2292
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2293
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2294
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2295
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2296
initializeRestartButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2297
    restartButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2298
                label:(resources string:'Restart')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2299
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2300
                    restartButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2301
                    self doRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2302
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2303
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2304
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2305
    "Created: / 17.11.2001 / 20:58:52 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2306
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2307
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2308
initializeReturnButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2309
    returnButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2310
                label:(resources string:'Return')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2311
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2312
                    returnButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2313
                    self doReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2314
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2315
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2316
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2317
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2318
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2319
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2320
initializeSendButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2321
    sendButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2322
                label:(resources string:'Send')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2323
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2324
                    sendButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2325
                    self doSend
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2326
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2327
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2328
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2329
    "Created: / 17.11.2001 / 21:01:20 / cg"
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
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2332
initializeStepButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2333
    stepButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2334
                label:(resources string:'Step')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2335
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2336
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2337
                    self doStep
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2338
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2339
                in:bpanel.
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:00:13 / 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
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2344
initializeTerminateButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2345
    terminateButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2346
                label:(resources string:'Terminate')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2347
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2348
                    terminateButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2349
                    self doTerminate
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2350
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2351
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2352
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2353
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2354
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2355
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2356
middleButtonMenu
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2357
    <resource: #programMenu >
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2358
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2359
    |items m|
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2360
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2361
    exclusive ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2362
        items := #(
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2363
                    ('Show Longer WalkBack'             showMore                )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2364
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2365
                    ('-'                                                        )
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2366
                    ('Add Breakpoint'                   addBreakpoint           )
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2367
                    ('Remove Breakpoint'                removeBreakpoint        )
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2368
                    ('Remove all Trace & Breakpoints'   removeAllBreakpoints    )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2369
                    ('-'                                                        )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2370
                    ('Copy WalkBack Text'               copyWalkbackText        )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2371
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2372
                    ('QuickTerminate'                   quickTerminate          )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2373
                    ('='                                                        )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2374
                    ('Exit Smalltalk (no Confirmation)' exit                    )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2375
                  ).
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2376
    ] ifFalse:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2377
        items := #(
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2378
                    ('Show Longer Walkback'             showMore                )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2379
                    ('Show Verbose Walkback'            showVerboseWalkback     )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2380
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2381
                    ('Skip'                             skip                    )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2382
                    ('Step Out'                         skipForReturn           )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2383
                    ('Skip until Entering...'           skipUntilEntering       )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2384
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2385
"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2386
                    ('Continue'                         doContinue              )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2387
                    ('Terminate'                        doTerminate             )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2388
                    ('Abort'                            doAbort                 )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2389
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2390
                    ('Step'                             doStep                  )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2391
                    ('Send'                             doSend                  )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2392
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2393
                    ('Return'                           doReturn                )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2394
                    ('Restart'                          doRestart               )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2395
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2396
"
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2397
                    ('Add Breakpoint'                   addBreakpoint           )
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2398
                    ('Remove Breakpoint'                removeBreakpoint        )   
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  2399
                    ('Remove all Trace & Breakpoints'   removeAllBreakpoints    )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2400
                ).
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2401
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  2402
        self allowBreakPointsInDebugger ifFalse:[
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2403
            items := items , #(
5664
c97684d07432 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5504
diff changeset
  2404
                        ('Allow Halt & Breakpoint in Debugger'       doNotIgnoreBreakpoints  )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2405
                    ).
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  2406
        ] ifTrue:[
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2407
            items := items , #(
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  2408
                        ('Ignore Halt & Breakpoints in Debugger'     doIgnoreBreakpoints  )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2409
                    ).
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2410
        ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2411
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2412
        items := items , #(
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2413
                    ('-'                                                        )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2414
                    ('Browse (Implementing Class)'      browseImplementingClass )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2415
                    ('Browse (Receivers Class)'         browseReceiversClass    )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2416
                    ('Browse Class Hierarchy'           browseClassHierarchy    )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2417
                    ('Browse Full Class Protocol'       browseFullClassProtocol )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2418
                    ('Implementors'                     browseImplementors      )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2419
                    ('Implementors Of...'               browseImplementorsOf    )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2420
                    ('Senders'                          browseSenders           )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2421
                    ('Senders Of...'                    browseSendersOf         )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2422
                    ('-'                                                        )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2423
                    ('Inspect Context'                  inspectContext          )
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2424
                    ('Copy WalkBack Text'               copyWalkbackText        )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2425
                    ('-'                                                        )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2426
                    ('QuickTerminate'                   quickTerminate          )
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2427
                    ('='                                                        )
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2428
                    ('Exit Smalltalk (no Confirmation)' exit                    )
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2429
                  ).
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2430
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2431
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2432
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2433
    m := PopUpMenu 
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2434
                itemList:items
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2435
                resources:resources
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2436
                receiver:self
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2437
                for:contextView.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2438
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2439
    verboseBacktrace ifTrue:[
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  2440
        m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2441
        m selectorAt:#showVerboseWalkback put:#showDenseWalkback
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2442
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2443
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2444
    inspecting ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2445
        m notNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2446
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2447
                           browseClassHierarchy browseFullClassProtocol
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2448
                           browseImplementors browseSenders inspectContext skip doStepOut).
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2449
        ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2450
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2451
    self updateMenuItems.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2452
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  2453
    ^ m.
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2454
!
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2455
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2456
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2457
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2458
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2459
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2460
        inspectedProcess notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2461
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2462
             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
  2463
             to run between mine and the debugged processes prio)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2464
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2465
            Processor activeProcess 
6464
ad9a50d6097e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6430
diff changeset
  2466
                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
  2467
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2468
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2469
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2470
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2471
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2472
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2473
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2474
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2475
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2476
    "/ 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
  2477
    "/ 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
  2478
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2479
    drawableId notNil ifTrue:[
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2480
        ^ self
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2481
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2482
    "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
  2483
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2484
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2485
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2486
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2487
setLabelFor:aMessage in:aProcess
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2488
    |l lines nm|
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2489
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2490
    lines := aMessage asStringCollection.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2491
    lines size > 1 ifTrue:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2492
        l := lines first
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2493
    ] ifFalse:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2494
        l := aMessage.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2495
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2496
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2497
    l := l , ' ('.
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2498
    Error handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2499
        l := l , '???'
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2500
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2501
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2502
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2503
            l := l , (nm contractTo:17) , ''.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2504
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2505
        l := l , '[' , aProcess id printString , ']'.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2506
    ].
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2507
    l := l , ')'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2508
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2509
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2510
    "Modified: / 06-07-2006 / 12:43:19 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2511
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2512
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2513
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2514
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2515
contextInterrupt
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
        'contextIRQ' 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
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2520
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2521
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2522
    "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
  2523
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2524
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2525
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2526
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2527
        'stepIRQ' printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2528
        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
  2529
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2530
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2531
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2532
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2533
    "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
  2534
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2535
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2536
stepOrNext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2537
    |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
  2538
     inBlock left ignore contextBelow lastWrappedContext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2539
     leftWrap enteredWrap anyStepBlocks 
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2540
     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
  2541
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2542
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  2543
    "/ DebuggingDebugger := false
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2544
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2545
    skipLineNr == #return ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2546
        name := Processor activeProcess nameOrId.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2547
        self label:('stepping context returned ' , ' (process: ' , name , ')').
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2548
        here := thisContext sender sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2549
        here setLineNumber:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2550
        here := nil.
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2551
        con := thisContext sender sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2552
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2553
        BreakPointInterrupt handle:[:ex |
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2554
            'DebugView [info]: breakpoint in debugger ignored [stepOrNext]' infoPrintCR.
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2555
            ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2556
        ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2557
            self enter:con select:nil.
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2558
        ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2559
        con := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2560
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2561
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2562
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2563
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2564
"/    "/ 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
  2565
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2566
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2567
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2568
"/        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
  2569
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2570
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2571
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2572
    Processor activeProcess ~~ inspectedProcess ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2573
        'DebugView [info]: stray step interrupt' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2574
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2575
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2576
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2577
    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
  2578
    here := here sender.        "the caller; step- or contextIRQ"  
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2579
    here := here sender.        "the interrupted context"  
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2580
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2581
    DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2582
        '*******' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2583
        'here in ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2584
        inWrap ifTrue:['(wrap) ' print.].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2585
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2586
        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
  2587
    ].
10
46e0d4f2079f *** empty log message ***
claus
parents: 7
diff changeset
  2588
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2589
    "/ kludge an bug-workaround;
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2590
    "/ I should not see those ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2591
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2592
    here selector == #ioInterrupt ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2593
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2594
            'oops - should not get that one' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2595
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2596
        Processor ioInterrupt.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2597
        StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2598
        InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2599
        where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2600
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2601
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2602
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2603
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2604
    stepUntilEntering notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2605
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2606
            'check if entering ' print. stepUntilEntering printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2607
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2608
        (stepUntilEntering match:here selector) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2609
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2610
                'entering...' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2611
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2612
            name := Processor activeProcess nameOrId.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2613
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , name , ')').
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
            lastStepUntilEntering := stepUntilEntering.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2616
            stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2617
            self enter:here select:nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2618
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2619
            ^ self
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2620
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2621
        "/ see if stepping context is still active ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2622
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2623
        con := here.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2624
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2625
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2626
            'start searching at: ' print.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2627
            con fullPrint.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2628
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2629
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2630
            con := con sender
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2631
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2632
        con notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2633
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2634
                'steppingContext still active - continue stepping' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2635
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2636
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2637
            where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2638
            StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2639
            InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2640
            InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2641
            ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2642
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2643
        stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2644
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2645
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2646
    "
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2647
     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
  2648
         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
  2649
         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
  2650
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2651
    isWrap := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2652
    left := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2653
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2654
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2655
    where := here.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2656
    inWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2657
        wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2658
        5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2659
            (where notNil and:[where isBlockContext not]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2660
                method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2661
                (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2662
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2663
                     in a wrapper method
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2664
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2665
                    wrappedMethod ~~ method ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2666
                        wrappedMethod := method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2667
                        lastWrappedContext := where.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2668
                        where sender receiver == method originalMethod ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2669
                            isWrap := true.
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
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2672
                        where == steppedContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2673
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2674
                            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2675
                                'change stepCon from: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2676
                                steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2677
                                ' to lastWrapped: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2678
                                lastWrappedContext printCR.
1399
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2681
                            inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2682
                            leftWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2683
                            wrapperContext := steppedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2684
                            steppedContext := lastWrappedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2685
                        ]
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
                where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2689
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2690
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2691
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2692
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2693
    isWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2694
        DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2695
            'ignore wrap' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2696
        ].
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
        "/ ignore, while in wrappers hidden setup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2700
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2701
        where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2702
        ObjectMemory flushInlineCaches.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2703
        
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2704
        skipLineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2705
            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2706
                'skipRet in wrap' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2707
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2708
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2709
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2710
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2711
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2712
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2713
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2714
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2715
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2716
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2717
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2718
    DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2719
        'bigStep is: ' print. bigStep printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2720
        'steppedContext is: ' print. steppedContext printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2721
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2722
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2723
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2724
    "/ 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
  2725
    "/
787
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2726
    (bigStep 
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2727
    and:[steppedContext notNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2728
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2729
         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
  2730
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2731
        where := here.      "the interrupted context"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2732
        contextBelow := nil.
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 home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2735
            "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2736
            "/ in a block called by 'our' context ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2737
            "/
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
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2743
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2744
        where == steppedContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2745
            where := where sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2746
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2747
            where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2748
                where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2749
"/ '*block*' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2750
                    inBlock := true.
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
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2753
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2754
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2755
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2756
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2757
"/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
  2758
"/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
  2759
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2760
            where == steppedContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2761
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2762
                "/ check if we are in a context below steppedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2763
                "/ (i.e. if steppedContext can be reached from
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2764
                "/  interrupted context. Not using context-ref but its
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2765
                "/  address to avoid creation of many useless contexts.)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2766
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2767
                inBlock ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2768
                    [where notNil] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2769
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2770
                        "/ 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
  2771
                        "/ is a block of the steppedContext, we must really
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2772
                        "/ do a single step. Otherwise, stepping through a
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2773
                        "/ 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
  2774
                        receiver := where receiver.
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2775
                        (receiver isBlock
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2776
                        and:[(receiver isKindOf:Block)
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2777
                        and:[receiver home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2778
                        ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2779
                            anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2780
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2781
                            where args do:[:arg |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2782
                                (arg isBlock
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2783
                                and:[(arg isKindOf:Block)
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2784
                                and:[arg home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2785
                                ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2786
                                    anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2787
                                ]
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
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2790
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2791
                        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2792
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2793
                            where selector printCR.
1399
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
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2797
"/ 'found it - below; ignore' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2798
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2799
                             found the interesting context somwehere up in the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2800
                             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
  2801
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2802
                            tracing == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2803
                                here printString printCR
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2804
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2805
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2806
                              yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2807
                              - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2808
                              Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2809
                              look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2810
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2811
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2812
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2813
"/ '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
  2814
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2815
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2816
"/                                    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
  2817
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2818
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2819
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2820
                                    'below stepCon; continue until unwind of: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2821
                                    contextBelow printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2822
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2823
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2824
                                StepInterruptPending := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2825
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2826
                                ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2827
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2828
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2829
"/                                    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
  2830
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2831
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2832
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2833
                                    'in stepCon; continue single stepping' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2834
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2835
                                StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2836
                                InterruptPending := 1.
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
                            where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2839
                            InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2840
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2841
                            ^ self
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2842
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2843
1537
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2844
                        (steppedContext notNil and:[
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2845
                         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
  2846
                            inBlockBelow := true.
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
                        anyStepBlocks ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2850
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2851
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2852
"/ 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
  2853
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2854
where isBlockContext ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2855
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2856
].
1399
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
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2859
                        where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2860
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2861
                    s := 'context returned'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2862
                    left := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2863
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2864
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2865
"/ 'found it right in sender' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2866
                s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2867
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2868
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2869
"/ 'found it right away' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2870
            s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2871
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2872
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2873
"/ ' send' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2874
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2875
         a send
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2876
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2877
        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2878
            'clear steppedContext' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2879
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2880
        steppedContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2881
        s := 'after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2882
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  2883
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2884
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2885
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2886
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2887
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2888
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2889
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2890
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2891
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2892
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2893
        steppedContext home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2894
            steppedContext := steppedContext home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2895
            s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2896
            left := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2897
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2898
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2899
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2900
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2901
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2902
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2903
     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
  2904
         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
  2905
         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
  2906
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2907
    (where isNil 
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2908
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2909
    ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2910
        "/ did not find our steppedContext along the chain;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2911
        "/ could be in a wrappedMethods exitBlock ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2912
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2913
        leftWrap ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2914
            where := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2915
            wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2916
            5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2917
                where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2918
                    where isBlockContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2919
                        method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2920
                        (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2921
                            where == wrapperContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2922
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2923
                                    'change stepCon fromWrapped: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2924
                                    steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2925
                                    ' to: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2926
                                    wrapperContext printCR.
1399
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
                                inWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2930
                                enteredWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2931
                                steppedContext := wrapperContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2932
                                wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2933
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2934
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2935
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2936
                    where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2937
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2938
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2939
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2940
        enteredWrap ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2941
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2942
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2943
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2944
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2945
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2946
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2947
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2948
        "/ special care for stepInterrupt in send,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2949
        "/ when created a dummy context (lineNr == 1)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2950
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2951
        steppedContext lineNumber isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2952
            steppedContext selector == here sender selector ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2953
                left := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2954
                s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2955
                steppedContext := here sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2956
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2957
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2958
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2959
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2960
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2961
    inBlock ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2962
"/ 'inBlock' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2963
        s := 'in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2964
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2965
    inBlockBelow ifTrue:[
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2966
        ignore := true
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2967
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2968
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2969
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2970
        where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2971
            '(' print. steppedContextLineno print. ') ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2972
            where printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2973
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  2974
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2975
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2976
    ignore ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2977
        (bigStep 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2978
        and:[steppedContextLineno notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2979
        and:[where notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2980
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2981
            (here isBlockContext 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2982
            and:[(here methodHome == steppedContext)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2983
                 or:[here home == steppedContext]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2984
                DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2985
                    'same line but in block' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2986
                ].
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
                steppedContext := actualContext := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2989
                steppedContextLineno := here lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2990
            ] ifFalse:[    
3063
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2991
                "/ kludge - I only have the info for up to 255 lines
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2992
                steppedContextLineno ~~ 255 ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2993
                    DebuggingDebugger == true ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2994
                        'same line - ignored' printCR.
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2995
                    ].
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2996
                    ignore := true
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2997
                ].
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
        ].
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
        (left not 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3002
        and:[skipLineNr notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3003
        and:[where notNil
1764
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  3004
        and:[where lineNumber notNil
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  3005
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3006
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3007
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3008
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3009
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3010
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3011
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3012
        (steppedContextLineno isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3013
        and:[skipLineNr isNil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3014
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3015
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3016
                'same line2 (after conIRQ) - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3017
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3018
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3019
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3020
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3021
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3022
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3023
"/' ' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3024
        where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3025
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3026
         yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3027
          - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3028
          Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3029
          look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3030
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3031
        ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3032
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3033
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3034
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  3035
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3036
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3037
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  3038
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3039
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  3040
    name := Processor activeProcess nameOrId.
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3041
    self label:(s , ' (process: ' , name , ')').
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  3042
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3043
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3044
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  3045
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3046
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3047
    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
  3048
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3049
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  3050
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3051
        '==> 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
  3052
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3053
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3054
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3055
    (oneMore == true) ifTrue:[
1871
971fe3afd573 care for nil lineNumber in context (how can this happen ?)
Claus Gittinger <cg@exept.de>
parents: 1824
diff changeset
  3056
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3057
            initiallyShown := 2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3058
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3059
            initiallyShown := 1
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3060
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3061
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3062
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3063
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3064
    BreakPointInterrupt handle:[:ex |
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3065
        'DebugView [info]: breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3066
        ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  3067
    ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3068
        self enter:con select:initiallyShown
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3069
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  3070
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3071
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  3072
    "Created: / 14.10.1996 / 12:53:39 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3073
    "Modified: / 18.11.2001 / 01:00:55 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3074
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3075
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  3076
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3077
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3078
addBreakpoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3079
    "add a breakpoint on the selected contexts method - if any"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3080
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3081
    |implementorClass method|
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3082
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3083
    selectedContext isNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3084
        ^ self showError:'** select a context first **'
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
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3087
        ^ self
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3088
    ].
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
    implementorClass := selectedContext methodClass. 
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3091
    implementorClass notNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3092
        method := implementorClass compiledMethodAt:selectedContext selector.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3093
        (method notNil and:[method isBreakpointed not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3094
            method setBreakPoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3095
        ]
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3096
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3097
    contextView middleButtonMenu disable:#addBreakpoint.
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3098
    contextView middleButtonMenu enable:#removeBreakpoint.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3099
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3100
    "Modified: / 13.1.1998 / 00:24:47 / cg"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3101
!
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3102
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3103
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3104
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3105
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3106
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3107
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3108
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3109
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3110
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3111
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3112
    (cls includesSelector:sel) ifFalse:[
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3113
        sel := nil
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3114
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3115
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3116
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3117
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3118
allowBreakPointsInDebugger
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3119
    ^ ignoreBreakpoints not
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3120
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3121
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3122
allowBreakPointsInDebugger:aBoolean
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3123
    ignoreBreakpoints := aBoolean not.
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3124
    self initializeMiddleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3125
    self initializeContextViewsMiddleButtonMenu.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3126
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3127
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3128
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3129
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3130
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3131
    updateProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3132
        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3133
        updateProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3134
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3135
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3136
!
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
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3139
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3140
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3141
    updateProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3142
        updateProcess := 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3143
            [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3144
                [true] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3145
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3146
                        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3147
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3148
                        monitorToggle activeForegroundColor:Color black.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3149
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3150
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3151
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3152
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3153
                        monitorToggle lampColor:(Color red).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3154
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3155
                        monitorToggle activeForegroundColor:Color red.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3156
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3157
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3158
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3159
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3160
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3161
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3162
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
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3165
browseClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3166
    "browse the reveivers class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3167
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3168
    |cls sel|
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
    selectedContext isNil ifTrue:[^ self].
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
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3173
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3174
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3175
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3176
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3177
    cls browserClass openInClass:cls selector:sel.
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
    "Modified: / 3.2.1998 / 20:23:36 / cg"
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
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3182
browseClassHierarchy
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3183
    "browse the reveivers classHierarchy (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3184
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3185
    |cls mthd|
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
    selectedContext isNil ifTrue:[^ self].
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
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3190
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3191
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3192
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3193
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3194
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3195
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3196
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3197
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3198
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3199
    "Modified: / 17.11.2001 / 19:43:06 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3200
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3201
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3202
browseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3203
    "browse the reveivers full protocol (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3204
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3205
    |cls mthd|
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
    selectedContext isNil ifTrue:[^ self].
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
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3210
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3211
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3212
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3213
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3214
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3215
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3216
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3217
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3218
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3219
    "Modified: / 17.11.2001 / 19:43:43 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3220
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3221
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3222
browseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3223
    "browse the implementing class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3224
824
099fa90db8aa use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 804
diff changeset
  3225
    |mthd who sel cls|
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3226
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3227
    selectedContext isNil ifTrue:[^ self].
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3228
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3229
    mthd := selectedContext method.
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3230
    mthd notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3231
        who := selectedContext method who.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3232
        who notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3233
            cls := who methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3234
            sel := who methodSelector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3235
        ]
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3236
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3237
    cls isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3238
        "/ class not found - try receiver
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3239
        cls := selectedContext receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3240
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3241
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3242
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3243
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3244
    "Created: / 22.11.1995 / 21:27:01 / cg"
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3245
    "Modified: / 3.2.1998 / 19:46:40 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3246
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3247
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3248
browseImplementors
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3249
    "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
  3250
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3251
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3252
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3253
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3254
    "/ selectedContext receiver class browserClass
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3255
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3256
         browseImplementorsOf:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3257
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3258
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3259
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3260
    "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
  3261
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3262
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3263
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3264
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3265
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3266
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3267
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3268
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3269
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3270
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3271
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3272
    selector := Dialog 
3320
9e67543d692c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3283
diff changeset
  3273
                    requestSelector:'Selector to browse implementors of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3274
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3275
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3276
        UserPreferences systemBrowserClass
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3277
            browseImplementorsMatching:selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3278
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3279
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3280
    "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
  3281
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3282
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3283
browseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3284
    "browse the reveivers class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3285
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3286
    |cls sel|
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
    selectedContext isNil ifTrue:[^ self].
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
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3291
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3292
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3293
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3294
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3295
    cls browserClass openInClass:cls selector:sel.
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
    "Modified: / 3.2.1998 / 20:23:36 / cg"
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
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3300
browseSenders
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3301
    "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
  3302
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3303
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3304
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3305
    ].
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3306
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3307
        browseAllCallsOn:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3308
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3309
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3310
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3311
    "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
  3312
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3313
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3314
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3315
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3316
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3317
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3318
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3319
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3320
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3321
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3322
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3323
    selector := Dialog 
3333
5fb73dcafce1 selector box
Claus Gittinger <cg@exept.de>
parents: 3330
diff changeset
  3324
                    requestSelector:'Selector to browse senders of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3325
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3326
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3327
        UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3328
            browseAllCallsOn:selector asSymbol.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3329
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3330
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3331
    "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
  3332
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3333
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3334
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3335
    "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
  3336
     This allows pasting it into some other view for printing ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3337
6034
7f7d4b7362dd set selection interface changed
ca
parents: 5955
diff changeset
  3338
    self setClipboardText:(contextArray collect:[:con | con fullPrintString]) asStringCollection
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3339
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3340
    "Modified: 28.8.1995 / 15:31:59 / claus"
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3343
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  3344
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3345
     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
  3346
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3347
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3348
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3349
        (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
  3350
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3351
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3352
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3353
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3354
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3355
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3356
        inspectedProcess isDead ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3357
            self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3358
            ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3359
        ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3360
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3361
            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
  3362
        ] ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3363
            self interruptProcessWith:[AbortOperationRequest raise].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3364
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3365
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3366
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3367
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3368
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3369
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3370
    exitAction := #abort.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3371
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3372
    "exit private event-loop"
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3373
    catchBlock notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3374
        abortButton turnOff.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3375
        catchBlock value.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3376
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3377
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3378
        'DebugView [warning]: abort failed' errorPrintCR.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3379
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3380
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3381
    ^ self.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3382
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3383
    "Modified: / 17.11.2001 / 22:53:22 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3384
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3385
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3386
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3387
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3388
     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
  3389
     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
  3390
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3391
    self checkIfCodeIsReallyModified ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3392
        (self confirm:('Code modified - abort anyway ?'))
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3393
        ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3394
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3395
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3396
    ].
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
    inspecting ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3399
        inspectedProcess isDead ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3400
            self showTerminated.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3401
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3402
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3403
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3404
            self showError:'** the process does not handle the abort signal **'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3405
        ] ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3406
            self interruptProcessWith:[AbortAllOperationRequest raise].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3407
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3408
        ^ self
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
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3411
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3412
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3413
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3414
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3415
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3416
    catchBlock notNil ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3417
        abortButton turnOff.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3418
        catchBlock value.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3419
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3420
        "/ not reached
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3421
        'DebugView [warning]: abort failed' errorPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3422
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3423
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3424
    ^ self.
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
    "Modified: / 17.11.2001 / 22:53:22 / cg"
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
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3429
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3430
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3431
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3432
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3433
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3434
    self checkIfCodeIsReallyModified ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3435
        (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
  3436
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3437
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3438
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3439
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3440
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3441
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3442
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3443
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3444
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3445
        continueButton action:[self doStop].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3446
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3447
        self processPerform:#resume.
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
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3450
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3451
    canContinue ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3452
        exContext := thisContext findSpecialHandle:false raise:true.
1725
40a8fdab9974 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1719
diff changeset
  3453
        
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3454
        (exContext notNil
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  3455
        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
  3456
        and:[ ex isException
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3457
        and:[ ex signal == NoHandlerError
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3458
        and:[ ex parameter signal == RecursionError]]]])
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3459
        ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3460
            "/ debug due to unhandled recursionInterrupt.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3461
            "/ ask if we should proceed with more stack.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3462
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3463
            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
  3464
            answer == true ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3465
                proc := Processor activeProcess.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3466
                proc setMaximumStackSize:(proc maximumStackSize * 2).
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3467
            ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3468
        ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3469
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3470
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3471
        tracing := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3472
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3473
        exitAction := #continue.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3474
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3475
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3476
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3477
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3478
        "/ not reached.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3479
        'DebugView [warning]: continue failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3480
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3481
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3482
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3483
        inspecting ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3484
            'DebugView [info]: resuming top context' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3485
            self showSelection:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3486
            self doReturn
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3487
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3488
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3489
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3490
    "Modified: / 5.10.1998 / 13:03:47 / cg"
2308
96e0033aa5a3 Exception handling change.
Stefan Vogel <sv@exept.de>
parents: 2305
diff changeset
  3491
    "Modified: / 26.7.1999 / 15:38:45 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3492
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3493
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3494
doDefine
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3495
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3496
     bagOfClassNames bagOfUsedClassNames|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3497
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3498
    selectionIndex := contextView selection.
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3499
3283
1f20f44c64bf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3270
diff changeset
  3500
    selector := actualContext selector.
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3501
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3502
    "generate nice argument names"
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3503
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3504
    bagOfUsedClassNames := Bag new.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3505
    argNames := actualContext args 
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3506
                    collect:
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3507
                        [:eachArg |
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3508
                            |nm|
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3509
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3510
                            nm := eachArg class name.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3511
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3512
                                nm article , nm
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3513
                            ] ifFalse:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3514
                                bagOfUsedClassNames add:nm.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3515
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3516
                            ].
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3517
                        ].
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
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3520
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3521
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3522
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3523
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3524
    actualContext receiver isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3525
        (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
  3526
        ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3527
            ^ self
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3528
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3529
    ].
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
    receiversClass := actualContext receiver class.
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 instVarNames includes:selector) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3534
        code := '%1\' , haltStmtFix , '\    ^ %2'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3535
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3536
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3537
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3538
    and:[(selector endsWith:':')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3539
    and:[receiversClass instVarNames includes:(selector copyWithoutLast:1)]]) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3540
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3541
        code := '%1\' , haltStmtFix , '\    %2 := arg.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3542
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3543
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3544
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3545
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3546
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3547
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3548
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3549
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3550
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3551
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3552
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3553
    code isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3554
        code := '%1\' , haltStmtDef
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3555
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3556
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3557
    self 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3558
        codeAccept:(code bindWith:proto with:selector) withCRs
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3559
        unwind:false
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3560
        category:cat
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3561
        onCancel:[^ self]. 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3562
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3563
    self doShowSelection:selectionIndex.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3564
    self doRestart
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3565
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3566
    "Modified: / 17.11.2001 / 23:43:54 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3567
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3568
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3569
doIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3570
    self allowBreakPointsInDebugger:false
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3571
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3572
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3573
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3574
    "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
  3575
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3576
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3577
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3578
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3579
        (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
  3580
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3581
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3582
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3583
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3584
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3585
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3586
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3587
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3588
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3589
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3590
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3591
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3592
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3593
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3594
        'DebugView [warning]: send failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3595
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3596
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3597
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3598
    "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
  3599
    "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
  3600
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3601
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3602
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3603
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3604
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3605
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3606
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3607
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3608
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3609
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3610
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3611
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3612
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3613
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3614
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3615
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3616
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3617
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3618
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3619
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3620
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3621
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3622
    "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
  3623
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3624
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3625
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3626
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3627
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3628
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3629
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3630
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3631
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3632
    traceView notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3633
        traceView topView destroy.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3634
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3635
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3636
    tracing := false
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
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3639
doNotIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3640
    self allowBreakPointsInDebugger:true
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3641
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3642
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3643
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3644
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3645
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3646
    | str |
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3647
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3648
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3649
    str nextPutLine:('Error notification from '
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3650
                    , OperatingSystem getLoginName
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
                    , OperatingSystem getHostName).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3653
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3654
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  3655
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3656
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3657
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3658
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3659
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3660
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3661
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3662
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3663
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3664
    firstContext notNil ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3665
        firstContext fullPrintAllOn:str.
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
    str cr;cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3668
    SendMailTool openForMessage:(str contents) withSubject:('STX Error:[', self label, ']') preOpenBlock:[:inst|
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3669
        inst recipientEntryField value:'error@exept.de'
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3670
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3671
    str close.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3672
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3673
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3674
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3675
    "restart - the selected context will be restarted"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3676
    
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3677
    self checkIfCodeIsReallyModified ifTrue:[
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3678
        (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
  3679
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3680
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3681
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3682
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3683
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3684
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3685
        ].
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3686
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3687
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3688
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3689
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3690
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3691
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3692
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3693
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3694
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3695
    "/ normally not reached
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3696
    
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3697
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3698
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3699
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3700
    "Modified: / 29.7.1998 / 21:49:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3701
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3702
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3703
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3704
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3705
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3706
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3707
        (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
  3708
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3709
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3710
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3711
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3712
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3713
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3714
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3715
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3716
        ].
2313
265e13afc504 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2312
diff changeset
  3717
        self interruptProcessWith:[selectedContext unwind:nil].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3718
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3719
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3720
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3721
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3722
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3723
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3724
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3725
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3726
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3727
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3728
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3729
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3730
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3731
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3732
    "Modified: / 29.7.1998 / 21:50:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3733
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3734
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3735
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3736
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3737
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3738
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3739
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3740
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3741
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3742
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3743
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3744
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3745
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3746
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3747
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3748
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3749
"/        catchBlock notNil ifTrue:[catchBlock value].
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
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3752
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3753
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3754
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3755
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3756
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3757
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3758
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3759
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3760
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3761
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3762
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3763
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3764
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3765
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3768
doStep:lineNr
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3769
    "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
  3770
     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
  3771
     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
  3772
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3773
    |con method|
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
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3776
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3777
    self checkIfCodeIsReallyModified ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3778
        (self confirm:('Code modified - step anyway ?'))
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3779
        ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3780
            ^ self
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3781
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3782
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3783
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3784
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3785
        selectedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3786
            con := actualContext. "/ selectedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3787
            steppedContextLineno := actualContext lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3788
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3789
            con := contextArray at:2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3790
            steppedContextLineno := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3791
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3792
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3793
        skipLineNr := lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3794
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3795
        lineNr == -1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3796
            steppedContextLineno := skipLineNr := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3797
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3798
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3799
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3800
            steppedContext := contextArray at:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3801
            stepHow := #nextIn.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3802
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3803
            stepHow == #nextOut ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3804
                steppedContext := con home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3805
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3806
                steppedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3807
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3808
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3809
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3810
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3811
"/ ' 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
  3812
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3813
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3814
         if we step in a wrapped method,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3815
         prepare to skip the prolog ...
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3818
        inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3819
        method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3820
        (method notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3821
        and:[method isWrapped
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3822
        and:[method originalMethod ~~ method]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3823
            inWrap := true
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
        lineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3827
            Processor activeProcess forceInterruptOnReturnOf:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3828
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3829
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3830
        con := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3831
        bigStep := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3832
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3833
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3834
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3835
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3836
        catchBlock value.
1399
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
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3839
        'DebugView [warning]: step failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3840
        stepButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3841
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3842
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3843
    "Modified: / 29.7.1998 / 21:50:16 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3844
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3845
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3846
doStop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3847
    "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
  3848
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3849
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3850
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3851
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3852
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3853
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3854
        continueButton action:[self doContinue].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3855
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3856
        self processPerform:#stop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3857
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3858
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3859
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3860
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3861
    "Modified: 20.10.1996 / 18:30:48 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3862
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3863
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3864
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3865
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3866
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3867
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3868
        (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
  3869
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3870
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3871
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3872
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3873
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3874
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3875
        self processPerform:#terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3876
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3877
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3878
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3879
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3880
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3881
    exitAction := #terminate. 
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3882
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3883
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3884
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3885
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3886
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3887
    inspecting ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3888
        'DebugView [warning]: terminate failed' errorPrintCR.
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3889
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3890
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3891
            Processor activeProcess terminate.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3892
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3893
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3894
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3895
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3896
    "Modified: / 29.7.1998 / 21:50:35 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3897
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3898
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3899
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3900
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3901
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3902
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3903
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3904
"/    |v b|
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
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3907
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3908
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3909
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3910
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3911
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3912
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3913
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3914
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3915
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3916
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3917
"/            traceView := nil
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
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3920
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3921
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3922
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3923
"/    v realize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3924
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3925
"/    tracing := true.
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3928
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3929
    "tracestep - not implemented yet"
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
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3932
        tracing := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3933
        self doStep
266
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3937
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3938
    "exit from menu: immediate exit from smalltalk"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3939
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3940
    OperatingSystem exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3941
!
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
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3944
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3945
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3946
    contextView selection notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3947
        (contextView selectionValue startsWith:'**') ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3948
            (contextArray at:(contextView selection)) inspect.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3949
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3950
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3951
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3952
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3953
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3954
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3955
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3956
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3957
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3958
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3959
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3960
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3961
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3962
    "quick terminate - the process will get no chance for cleanup actions"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3963
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3964
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3965
        self processPerform:#terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3966
        ^ self
266
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
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3969
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3970
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3971
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3972
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3973
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3974
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3975
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3976
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3977
    inspecting ifFalse:[
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3978
        'DebugView [warning]: quick terminate failed' errorPrintCR.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3979
        (self confirm:'Regular quick terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3980
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3981
            Processor activeProcess terminateNoSignal.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3982
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3983
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3984
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3985
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3986
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3987
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3988
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3989
removeAllBreakpoints
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3990
    "remove all trace & breakpoints - if any"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3991
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  3992
    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  3993
        self withExecuteCursorDo:[
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  3994
            MessageTracer unwrapAllMethods
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  3995
        ]
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  3996
    ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  3997
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  3998
    "Modified: / 21.5.1998 / 01:44:43 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3999
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4000
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4001
removeBreakpoint
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4002
    "remove breakpoint on the selected contexts method - if any"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4003
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4004
    |implementorClass method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4005
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4006
    selectedContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4007
        ^ self showError:'** select a context first **'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4008
    ].
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4009
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4010
        ^ self
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  4011
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4012
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4013
    implementorClass := selectedContext methodClass. 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4014
    implementorClass notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4015
        method := implementorClass compiledMethodAt:selectedContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4016
        (method notNil and:[method isBreakpointed]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4017
            method clearBreakPoint
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4018
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4019
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4020
    contextView middleButtonMenu disable:#removeBreakpoint.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4021
    contextView middleButtonMenu enable:#addBreakpoint.
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4022
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4023
    "Modified: / 13.1.1998 / 00:24:47 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4024
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4025
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4026
showDenseWalkback
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4027
    |m|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4028
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4029
    m := contextView middleButtonMenu.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4030
    verboseBacktrace := false.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4031
    m labelAt:#showDenseWalkback put:(resources string:'Show Verbose WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4032
    m selectorAt:#showDenseWalkback put:#showVerboseWalkback.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4033
    self redisplayBacktrace.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4034
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4035
    "Created: / 17.11.2001 / 20:08:08 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4036
    "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
  4037
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4038
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4039
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4040
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4041
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4042
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4043
        nChainShown := nChainShown * 2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4044
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4045
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  4046
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4047
    "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
  4048
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4049
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4050
showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4051
    |m|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4052
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4053
    verboseBacktrace := true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4054
    m := contextView middleButtonMenu.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4055
    m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4056
    m selectorAt:#showVerboseWalkback put:#showDenseWalkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4057
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4058
    self redisplayBacktrace.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4059
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4060
    "Created: / 17.11.2001 / 20:07:57 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4061
    "Modified: / 17.11.2001 / 22:39:41 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4062
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4063
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4064
showingDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4065
    ^ verboseBacktrace == false.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4066
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4067
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4068
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4069
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4070
showingVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4071
    ^ verboseBacktrace == true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4072
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4073
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4074
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4075
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4076
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4077
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4078
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4079
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4080
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4081
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4082
    "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
  4083
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4084
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4085
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4086
    "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
  4087
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4088
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4089
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4090
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4091
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4092
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4093
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4094
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4095
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4096
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4097
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4098
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4099
    selector := Dialog 
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4100
                request:'Skip until entering what (matchpattern):'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4101
                initialAnswer:self goodSkipUntilSelector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4102
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4103
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4104
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4105
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4106
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4107
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4108
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4109
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4110
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4111
toggleVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4112
    verboseBacktrace ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4113
        self showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4114
    ] ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4115
        self showDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4116
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4117
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4118
    "Modified: / 17.11.2001 / 20:07:45 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4119
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4120
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4121
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4122
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4123
abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4124
    ^ AbortAllOperationRequest isHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4125
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4126
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4127
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4128
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4129
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4130
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4131
canAddBreakpoint
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4132
    |m|
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4133
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4134
    m := contextView middleButtonMenu.
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4135
    ^ m notNil and:[m isEnabled:#addBreakpoint]
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4136
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4137
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4138
canBrowseClassHierarchy
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4139
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4140
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4141
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4142
    ^ m notNil and:[m isEnabled:#browseClassHierarchy]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4143
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4144
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4145
canBrowseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4146
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4147
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4148
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4149
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4150
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4151
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4152
canBrowseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4153
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4154
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4155
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4156
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4157
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4158
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4159
canBrowseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4160
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4161
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4162
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4163
    ^ m notNil and:[m isEnabled:#browseReceiversClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4164
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4165
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4166
canDefineMethod
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4167
    ^ defineButton isVisible
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4168
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4169
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4170
canRemoveBreakpoint
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4171
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4172
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4173
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4174
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4175
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4176
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4177
canRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4178
    ^ restartButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4179
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4180
    "Modified: / 17.11.2001 / 19:59:49 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4181
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4182
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4183
canReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4184
    ^ returnButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4185
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4186
    "Modified: / 17.11.2001 / 19:59:18 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4187
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4188
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4189
canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4190
    ^ canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4191
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4192
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4193
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4194
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4195
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4196
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4197
explainSelection
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4198
    |interval node definingNode crsrPos nm varIdx|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4199
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4200
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4201
    interval isEmpty ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4202
        crsrPos := codeView characterPositionOfCursor.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4203
        codeView characterUnderCursor isSeparator ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4204
            crsrPos := (crsrPos - 1) max:1    
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4205
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4206
        interval := crsrPos to:crsrPos.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4207
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4208
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4209
    node := self findNodeForInterval:interval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4210
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4211
    node notNil ifTrue: [
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4212
        node isVariable ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4213
            nm := node name.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4214
3540
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4215
            (nm = 'self') ifTrue:[
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4216
                self showValue:(actualContext methodHome receiver).
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4217
                ^ self
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4218
            ].
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4219
            (#( 'super' 'thisContext') includes:nm) ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4220
                ^ self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4221
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4222
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4223
            definingNode := node whoDefines:nm.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4224
            definingNode notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4225
                definingNode isMethod ifTrue:[
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4226
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4227
                    varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4228
                        self showValue:(actualContext methodHome argAt:varIdx)
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4229
                    ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4230
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4231
                definingNode isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4232
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4233
                    (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4234
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4235
                        ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4236
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4237
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4238
                definingNode parent notNil ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4239
                    definingNode parent isMethod ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4240
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4241
                        varIdx ~~ 0 ifTrue:[
3542
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4242
                            actualContext methodHome numVars >= varIdx ifTrue:[
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4243
                                self showValue:(actualContext methodHome varAt:varIdx)
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4244
                            ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4245
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4246
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4247
                    definingNode parent isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4248
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4249
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4250
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4251
                    ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4252
                ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4253
            ].
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4254
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4255
        ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4256
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4257
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4258
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4259
findNodeForInterval:interval
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4260
    |tree node source|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4261
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4262
    interval isEmpty ifTrue: [^ nil].
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4263
    RBParser isNil ifTrue:[^ nil].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4264
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4265
    source := codeView contents asString string.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4266
    source := currentMethod source.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4267
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4268
    Error handle:[:ex |
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4269
        Transcript showCR:ex description.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4270
    ] do:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  4271
        Compiler parseErrorSignal catch:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4272
            tree := RBParser 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4273
                        parseMethod:source 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4274
                        onError: [:str :err ":nodesSoFar" | ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4275
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4276
        tree isNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4277
            Compiler parseErrorSignal handle:[:ex |
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4278
            ] do:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4279
                tree := RBParser 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4280
                            parseDoItMethodBody:source 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4281
                            onError: [:str :err ":nodesSoFar" | ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4282
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4283
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4284
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4285
    tree isNil ifTrue:[^ nil].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4286
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4287
    node := tree whichNodeIsContainedBy:interval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4288
    node isNil ifTrue: [
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4289
        node := self findNodeIn:tree forInterval:interval
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4290
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4291
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4292
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4293
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4294
findNodeIn:tree forInterval:interval 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4295
    |node|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4296
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4297
    node := nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4298
    tree nodesDo:[:each | 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4299
        (each intersectsInterval:interval) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4300
            (node isNil or:[node == each parent]) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4301
                node := each
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4302
            ] ifFalse:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4303
                (node parent notNil 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4304
                    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
  4305
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4306
        ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4307
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4308
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4309
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4310
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4311
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4312
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4313
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4314
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4315
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4316
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4317
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4318
    ('change:*' match:current) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4319
        ^ 'update:*'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4320
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4321
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4322
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4323
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4324
hasContextSelected
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4325
    ^ contextView hasSelection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4326
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4327
    "Created: / 17.11.2001 / 19:57:03 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4328
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4329
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4330
ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4331
    ^ ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4332
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4333
    "Created: / 17.11.2001 / 18:20:16 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4334
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4335
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4336
inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4337
    ^ inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4338
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4339
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4340
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4341
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4342
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4343
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4344
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4345
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4346
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4347
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4348
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4349
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4350
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4351
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4352
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4353
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4354
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4355
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4356
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4357
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4358
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4359
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4360
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4361
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4362
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4363
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4364
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4365
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4366
    inspectedProcess perform:aMessage.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4367
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4368
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4369
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4370
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4371
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4372
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4373
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4374
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4375
    "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
  4376
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4377
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4378
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4379
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4380
    contextArray notNil ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4381
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4382
            oldSelection := contextView selection.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4383
            oldSelection notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4384
                oldContext := contextArray at:oldSelection ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4385
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4386
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4387
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  4388
"/            con := contextArray at:1.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4389
            "/ 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
  4390
            contextArray size > 0 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4391
                contextArray at:1 put:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4392
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4393
            self setContext:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4394
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4395
            oldContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4396
                idx := oldSelection
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4397
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4398
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4399
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4400
            contextView setSelection:idx.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4401
            idx notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4402
                self showSelection:idx
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4403
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4404
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4405
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4406
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4407
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4408
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4409
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4410
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4411
selectedInterval
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4412
    ^ codeView selectionStartIndex to:(codeView selectionStopIndex - 1)
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4413
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4414
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4415
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4416
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4417
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4418
    ^ 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
  4419
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4420
    "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
  4421
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4422
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4423
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4424
    "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
  4425
     Most complications here arise from filtering less-interesting contexts
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4426
     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
  4427
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
  4428
    |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
  4429
     suspendContext calledBySuspendContext nm h calledContext|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4430
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4431
    (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
  4432
        "no change"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4433
        ^ false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4434
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4435
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4436
    firstContext := aContext.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4437
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4438
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4439
    m notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4440
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4441
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4442
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4443
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4444
    aContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4445
        text := Array with:'** no context **'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4446
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4447
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4448
        text := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4449
        contextArray := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4450
        con := aContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4451
        calledContext := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4452
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4453
        verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4454
            "/ with dense backtrace, hide the ProcessorScheduler
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4455
            "/ contexts at the top; look for a Process>>suspend*
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4456
            "/ context within the first 10 contexts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4457
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4458
            suspendContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4459
            c := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4460
            1 to:10 do:[:i |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4461
                |sel|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4462
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4463
                c notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4464
                    (sel := c selector) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4465
                        ((sel isSymbol and:[sel startsWith:'suspend'])
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4466
                        and:[c receiver isMemberOf:Process]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4467
                            suspendContext := c.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4468
                            calledBySuspendContext := cc.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4469
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4470
                    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4471
                    cc := c.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4472
                    c := c sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4473
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4474
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4475
            suspendContext notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4476
                con := suspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4477
                calledContext := calledBySuspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4478
                suspendContext := nil
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4479
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4480
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4481
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4482
        verboseBacktrace ~~ true ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4483
            con notNil ifTrue:[    
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4484
                "/ hide the halt implementation
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4485
                (con selector == #halt
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4486
                or:[con selector == #halt:]) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4487
                    con method mclass == Object ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4488
                        calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4489
                        con := con sender.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4490
                    ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4491
                ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4492
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4493
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4494
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4495
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4496
         get them all
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4497
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4498
        count := 0.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4499
        [con notNil and:[count <= nChainShown]] whileTrue:[
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4500
            [ 
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4501
                DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4502
                    'showingContext1: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4503
                    ') --> ' print. (self showingContext1:con calling:calledContext) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4504
                ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4505
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4506
                self showingContext1:con calling:calledContext
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4507
            ] whileFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4508
                calledContext := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4509
                con := con sender.
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4510
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4511
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4512
            DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4513
                'showingContext2: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4514
                ') --> ' print. (self showingContext2:con nesting:count) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4515
            ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4516
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4517
            (self showingContext2:con nesting:count) ifTrue:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4518
                "/ ignore it, if its in the same
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4519
                "/ method as the previous context
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4520
"/                (verboseBacktrace ~~ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4521
"/                and:[count > 0 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4522
"/                and:[contextArray last method == con method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4523
"/                and:[(contextArray last isBlockContext not 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4524
"/                     & con isBlockContext not) not ]]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4525
"/                    "/ skip it, if its in the same method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4526
"/                    "/ as the called context.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4527
"/                ] ifFalse:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4528
                    contextArray add:con.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4529
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4530
                    (MoreDebuggingDetail == true) ifTrue:[
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4531
                        nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4532
                    ] ifFalse:[
2914
f2607017f709 catch errors in context-printing
Claus Gittinger <cg@exept.de>
parents: 2812
diff changeset
  4533
                        Error handle:[:ex | nm := '???' ] do:[nm := con printString].
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4534
                    ].
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4535
                    text add:nm.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4536
                    count := count + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4537
"/                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4538
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4539
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4540
            "/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4541
            "/ kludge: if its a wrapped method, then hide the wrap-call
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4542
            "/
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4543
            method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4544
            (method notNil and:[method isWrapped]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4545
                called := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4546
                caller := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4547
                (caller notNil and:[caller receiver == method originalMethod]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4548
                    called2 := caller.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4549
                    caller2 := caller sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4550
                    (caller2 notNil and:[caller2 method == method]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4551
                        calledContext := called2.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4552
                        con := caller2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4553
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4554
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4555
                caller := caller2 := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4556
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4557
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4558
            "/ with dense backtrace, skip the doIt methods context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4559
            "/ (its dummy anyway) and fake that contexts name
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4560
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4561
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4562
                (con isBlockContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4563
                 and:[(h := con home) == con sender
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4564
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4565
                 and:[h method who isNil]]]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4566
                    calledContext := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4567
                    con := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4568
                    text removeLast.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4569
                    text add:(con methodHome printString).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4570
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4571
                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
  4572
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4573
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4574
            "/ with dense backtrace, dont show below the doIt
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4575
            ( verboseBacktrace ~~ true
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4576
            and:[ (self setOfHiddenCallingSelectors includes:con selector) ]) ifTrue:[
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4577
                con := nil.  
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4578
            ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4579
                calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4580
                con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4581
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4582
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4583
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4584
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4585
         did we reach the end ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4586
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4587
        (con isNil or:[con sender isNil]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4588
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4589
            "/ the very last one is the startup context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4590
            "/ (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
  4591
1906
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  4592
            (contextArray notEmpty
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  4593
            and:[contextArray last selector isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4594
                contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4595
                text removeLast
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4596
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4597
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4598
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4599
                "/ in dense mode, remove the process startup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4600
                "/ contexts (if any)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4601
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  4602
                (contextArray size > 0
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  4603
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4604
                    con selector == #start ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4605
                        contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4606
                        text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4607
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4608
                        [contextArray size > 0
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4609
                         and:[contextArray last methodHome == con]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4610
                            contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4611
                            text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4612
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4613
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4614
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4615
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4616
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4617
            m notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4618
                m enable:#showMore.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4619
            ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4620
            canShowMore := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4621
            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
  4622
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4623
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4624
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4625
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  4626
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4627
    releaseInspectors ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4628
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4629
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4630
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4631
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4632
    m notNil ifTrue:[
6275
f7b6fd2c89d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6247
diff changeset
  4633
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4634
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4635
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4636
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4637
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  4638
    "Created: / 14.12.1995 / 19:10:31 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4639
    "Modified: / 17.11.2001 / 22:29:19 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4640
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4641
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4642
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4643
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  4644
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4645
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4646
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4647
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4648
    verboseBacktrace ifFalse:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4649
        con := aContext.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4650
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4651
            con := con sender.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4652
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4653
                con := con sender.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4654
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4655
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4656
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4657
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4658
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4659
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4660
    "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
  4661
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4662
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4663
showError:message
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4664
    codeView contents:(resources string:message).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4665
    shown ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4666
        exclusive ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4667
            "/ consider this a kludge:
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4668
            "/ if exclusive, cannot use flash, since it suspends
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4669
            "/ (but we cannot suspend here ...)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4670
            codeView redrawInverted. device flush.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4671
            OperatingSystem millisecondDelay:200.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4672
            codeView redraw
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4673
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4674
            codeView flash
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4675
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4676
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4677
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4678
    "Modified: / 18.11.2001 / 00:01:13 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4679
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4680
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4681
showTerminated
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4682
    self showError:'** the process has terminated **'
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4683
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4684
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4685
showValue:aValue
3539
b31c4d09e464 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
  4686
    "/ TODO: show value in info field
b31c4d09e464 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3518
diff changeset
  4687
    "/ Transcript showCR:aValue printString
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4688
!
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4689
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4690
showingContext1:aContext calling:calledContext
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4691
    |recIsException sel rec senderRec mthd mthdClass calledSel calledRec|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4692
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4693
    verboseBacktrace == true ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4694
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4695
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4696
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4697
    rec := aContext receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4698
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4699
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4700
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4701
    "/ 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
  4702
    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
  4703
    aContext sender notNil ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4704
        senderRec := aContext sender receiver
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4705
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4706
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4707
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4708
        'showingContext1: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4709
        ') calling: (' print. calledContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4710
        ')' printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4711
    ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4712
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4713
    (#(doCallHandler: doRaise
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4714
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4715
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4716
            recIsException ifTrue:[ ^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4717
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4718
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4719
    (#(raise raiseRequest
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4720
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4721
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4722
            recIsException ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4723
                (senderRec isLazyValue not 
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4724
                and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4725
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4726
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4727
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4728
    (#(doWhile:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4729
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4730
        ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4731
            rec isBlock ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4732
                aContext sender isBlockContext ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4733
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4734
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4735
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4736
"/    calledContext notNil ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4737
"/        calledSel := calledContext selector.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4738
"/        calledRec := calledContext receiver.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4739
"/        calledRec isLazyValue ifFalse:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4740
"/            ((calledSel == #doWhile:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4741
"/            and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4742
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4743
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4744
"/            ((#(ensure: ifCurtailed: valueNowOrOnUnwindDo: valueOnUnwindDo:   
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4745
"/                ) includes:calledSel)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4746
"/             and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4747
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4748
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4749
"/            ((calledSel == #handle:do:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4750
"/             and:[calledRec isExceptionHandler])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4751
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4752
"/        ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4753
"/    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4754
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4755
    (#(handleDo:) includes:sel)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4756
        ifTrue:[ 
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4757
            (calledRec isLazyValue not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4758
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4759
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4760
        withCursor:do:
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4761
        withWaitCursorDo:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4762
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4763
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4764
            (mthdClass == TopView) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4765
            (mthdClass == ApplicationModel) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4766
            (mthdClass == WindowGroup) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4767
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4768
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4769
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4770
        wait
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4771
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4772
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4773
            (mthdClass == Semaphore) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4774
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4775
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4776
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4777
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4778
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4779
    "Created: / 17.11.2001 / 22:24:06 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4780
    "Modified: / 17.11.2001 / 22:41:42 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4781
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4782
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4783
showingContext2:aContext nesting:nesting
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4784
    "return false, if this context is to be skipped.
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4785
     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
  4786
     not too interesting; 
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4787
     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
  4788
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4789
    |sel rec mClass 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4790
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4791
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4792
    verboseBacktrace ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4793
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4794
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4795
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4796
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4797
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4798
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4799
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4800
    sender notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4801
        senderSelector := sender selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4802
        senderReceiver := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4803
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4804
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4805
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4806
    sel == #withCursor:do: ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4807
        (mClass == WindowGroup) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4808
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4809
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4810
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4811
    or:[sel == #withWaitCursorDo:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4812
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4813
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4814
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  4815
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  4816
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  4817
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  4818
    or:[sel == #doWithIndex:]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4819
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4820
        mClass == OrderedCollection ifTrue:[^ false].
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  4821
        mClass == Set ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  4822
        mClass == Dictionary ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  4823
        mClass == Interval ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4824
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4825
    (sel == #perform: 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4826
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4827
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4828
    or:[sel == #perform:with:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4829
    or:[sel == #perform:with:with:with:with:]]]])
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4830
    ifTrue:[
1499
6ed7024b9929 show a perform: context, if its the top-one.
Claus Gittinger <cg@exept.de>
parents: 1486
diff changeset
  4831
        nesting == 0 ifTrue:[^ true].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4832
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4833
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4834
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4835
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4836
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4837
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4838
    (mClass == Object) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4839
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4840
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4841
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4842
    (mClass == Method) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4843
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4844
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4845
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  4846
    (mClass == SmallInteger) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4847
        (sel == #to:do:) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4848
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  4849
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  4850
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4851
    (mClass == Block) ifTrue:[
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4852
        sel == #ensure: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4853
        sel == #ifCurtailed: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4854
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4855
        sel == #valueOnUnwindDo: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4856
        sel == #on:do: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4857
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4858
        sel == #value ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4859
        sel == #value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4860
        sel == #value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4861
        sel == #value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4862
        sel == #value:value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4863
        sel == #value:value:value:value:Value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4864
        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
  4865
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4866
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4867
    aContext isBlockContext ifTrue:[
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4868
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4869
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4870
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4871
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4872
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4873
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4874
"/        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
  4875
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4876
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4877
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4878
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4879
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4880
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4881
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4882
        aContext home notNil ifTrue:[
5271
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  4883
            aContext home receiver isLazyValue ifFalse:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  4884
                (aContext home receiver isMemberOf:Semaphore) ifTrue:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  4885
                    (aContext home selector == #wait) ifTrue:[^ false]
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  4886
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4887
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4888
        ]
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4889
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4890
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4891
    (rec isExceptionHandler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4892
        sel == #handle:do: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4893
        sel == #handleDo: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4894
        (sel startsWith:#raise) ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4895
        sel == #answer:do: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4896
    ].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4897
    (rec isLazyValue not and:[ rec isException] ) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4898
        sel == #doRaise ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4899
        sel == #doCallHandler: ifTrue:[^ false].
2312
86cf257b86d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2309
diff changeset
  4900
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4901
            senderReceiverClass == Signal ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4902
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4903
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4904
    (mClass == Context) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4905
        sel == #unwind ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4906
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4907
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4908
    (mClass == ProcessorScheduler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4909
        sel == #interruptActive ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4910
        sel == #threadSwitch: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4911
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4912
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4913
    mClass == Process ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4914
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4915
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4916
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4917
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4918
    "Modified: / 15.1.1998 / 19:47:36 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4919
    "Created: / 17.11.2001 / 19:34:20 / cg"
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4920
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4921
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4922
stepping 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4923
    ^ stepping 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4924
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4925
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4926
unstep 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4927
    stepping := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4928
    bigStep := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4929
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4930
    exitAction := nil
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  4931
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  4932
    "Modified: 22.10.1996 / 11:59:57 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4933
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4934
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4935
updateContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4936
    |oldContext idx|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4937
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4938
    inspectedProcess state == #dead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4939
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4940
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4941
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4942
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4943
    oldContext := selectedContext.
642
77e7e39f503a update context uninterruptably
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
  4944
    [
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4945
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4946
            oldContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4947
                contextArray notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4948
                    idx := contextArray identityIndexOf:oldContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4949
                    idx ~~ 0 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4950
                        self showSelection:idx
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4951
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4952
                        codeView contents:('** context returned **')
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4953
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4954
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4955
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4956
        ].
642
77e7e39f503a update context uninterruptably
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
  4957
    ] valueUninterruptably.
77e7e39f503a update context uninterruptably
Claus Gittinger <cg@exept.de>
parents: 641
diff changeset
  4958
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4959
    "Modified: 20.10.1996 / 18:11:24 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4960
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4961
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4962
!DebugView methodsFor:'private queries'!
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4963
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4964
isAborting
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4965
    ^ exitAction == #abort
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4966
!
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4967
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4968
setOfHiddenCallingSelectors
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4969
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4970
!
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4971
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4972
setOfHiddenCallingSelectors:aCollectionOfSymbols
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4973
    setOfHiddenCallingSelectors := aCollectionOfSymbols
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4974
! !
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  4975
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  4976
!DebugView methodsFor:'private-cache handling'!
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4977
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4978
cacheMyself
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4979
    "remember myself for next debug session"
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4980
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4981
    "caching the last debugger will make the next debugger appear
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4982
     faster, since no resources have to be allocated in the display.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4983
     We have to be careful to release all refs to the debuggee, though.
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  4984
     Otherwise, the GC will not be able to release it."
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4985
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4986
    windowGroup notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4987
        windowGroup setProcess:nil.
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4988
    ].
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4989
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4990
    self releaseDebuggee.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4991
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  4992
    cachable ~~ true ifTrue:[^ self].
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  4993
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4994
    "/
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4995
    "/ only cache if I am on the Display
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4996
    "/
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  4997
    device == Display ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4998
        exclusive ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4999
            CachedExclusive := self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5000
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5001
            CachedDebugger := self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5002
        ].
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  5003
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  5004
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  5005
    ObjectMemory stepInterruptHandler == self ifTrue:[
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  5006
        ObjectMemory stepInterruptHandler:nil
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  5007
    ].
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5008
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5009
    "Modified: 10.7.1997 / 15:50:46 / stefan"
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5010
    "Modified: 31.7.1997 / 21:20:14 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5011
!
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5012
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5013
isCached
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5014
    "tell wether we are a cached debugger"
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5015
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5016
    CachedExclusive == self ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5017
        ^ true.
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5018
    ].
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5019
    CachedDebugger == self ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5020
        ^ true.
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5021
    ].
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5022
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5023
    ^ false.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5024
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5025
    "Created: 10.7.1997 / 15:22:43 / stefan"
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5026
!
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5027
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5028
releaseDebuggee
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5029
    "We have to be careful to release all refs to the debuggee,
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5030
     because we may be in the cache.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5031
     Otherwise, the GC will not be able to release it"
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5032
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5033
    busy := false.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5034
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5035
    codeView acceptAction:nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5036
    codeView doItAction:nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5037
    codeView contents:nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5038
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5039
    receiverInspector release.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5040
    contextInspector release.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5041
    inspectedProcess := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5042
    contextArray := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5043
    selectedContext := actualContext := firstContext := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5044
    steppedContext := wrapperContext := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5045
    catchBlock := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5046
    grabber := nil.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5047
    self autoUpdateOff.
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5048
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5049
    "Created: / 10.7.1997 / 14:57:51 / stefan"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5050
    "Modified: / 10.7.1997 / 15:50:38 / stefan"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5051
    "Modified: / 17.11.2001 / 22:58:17 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5052
!
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5053
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5054
uncacheMyself
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5055
    "do not remember myself any longer for next debug session"
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5056
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5057
    cachable := false.
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5058
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5059
    CachedExclusive == self ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5060
        CachedExclusive := nil.
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5061
    ].
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5062
    CachedDebugger == self ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5063
        CachedDebugger := nil.
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5064
    ].
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5065
    OpenDebuggers notNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  5066
        OpenDebuggers remove:self ifAbsent:[].
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5067
    ].
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5068
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  5069
    "Modified: 31.7.1997 / 21:20:11 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5070
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5071
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  5072
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5073
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5074
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5075
    "this is a kludge:
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5076
        start a dispatchloop which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5077
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5078
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5079
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5080
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5081
    [
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5082
        [haveControl] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5083
            self controlLoopCatchingErrors
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5084
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  5085
    ] ensure:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5086
        catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5087
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5088
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5089
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5090
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5091
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5092
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5093
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5094
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5095
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5096
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5097
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5098
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5099
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5100
    (exclusive or:[windowGroup isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5101
        "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
  5102
         we start another dispatch loop, which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5103
         either continue, return or step is pressed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5104
         or (via the catchBlock) if an error occurs.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5105
         Since our display is an extra exclusive one, 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5106
         all processing for normal views stops here ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5107
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5108
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5109
        WindowGroup setActiveGroup:windowGroup.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5110
        SignalSet anySignal handle:[:ex |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5111
            |signal|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5112
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5113
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5114
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5115
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5116
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  5117
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5118
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5119
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5120
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5121
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5122
>>>>     :    ' , 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
  5123
>>>>     :    ' , 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
  5124
>>>>     :    ' , 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
  5125
>>>>     :    ' , 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
  5126
>>>>     :    ' , 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
  5127
>>>>     :    ' , 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
  5128
>>>>     :    ' , 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
  5129
>>>>     :    ' , 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
  5130
>>>>     :    ' , 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
  5131
>>>>     :    ' , 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
  5132
>>>>     :    ' , 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
  5133
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5134
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5135
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5136
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5137
        ] do:[
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5138
            UserNotification handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5139
                (ex signal == ActivityNotificationSignal) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5140
                    ex proceed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5141
                ].
6361
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5142
                self showError:ex description.
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5143
                ex proceed.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5144
            ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5145
                device dispatchModalWhile:[Processor activeProcess state:#debug.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5146
                                           haveControl].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5147
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5148
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5149
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5150
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5151
        "we do have multiple processes -
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5152
         simply enter the DebugViews-Windowgroup event loop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5153
         effectively suspending event processing for the currently 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5154
         active group.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5155
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5156
        SignalSet anySignal handle:[:ex |
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5157
            |answer signal eMsg|
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5158
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5159
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5160
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5161
            DebuggingDebugger ~~ true ifTrue:[
6172
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5162
                (signal == ActivityNotification) ifTrue:[
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5163
                    ex proceed
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5164
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5165
                "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5166
                "/ ignore recursive breakpoints
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5167
                "/
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5168
                (signal isControlInterrupt) ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5169
                    ignoreBreakpoints == true ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5170
                        '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
  5171
                        ex proceed
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5172
                    ].
1762
cd2bec8238fa ignare halts while handling my own events.
Claus Gittinger <cg@exept.de>
parents: 1753
diff changeset
  5173
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5174
                (signal == TerminateProcessRequest) ifTrue:[
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5175
                    "/ mhm - someone wants to shoot me down while debugging ...
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5176
                    answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5177
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5178
                                labels:#( 'Ignore' 'Close & terminate' ) 
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5179
                                values:#( #proceed #close ) 
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5180
                                default:#close.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5181
                    answer == #close ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5182
                        self destroy.   
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5183
                        ex reject
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5184
                    ].
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5185
                    ex return.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5186
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5187
                signal == RecursiveExceptionError ifTrue:[
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5188
                    (ex parameter signal == BreakPointInterrupt)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5189
                    ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5190
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5191
                        ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5192
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5193
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5194
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5195
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5196
>>>> Signal:  ' , ex signal printString , '
448
e50e23ae7dc3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 430
diff changeset
  5197
>>>>          ' , ex parameter signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5198
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5199
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5200
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5201
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5202
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5203
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5204
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5205
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5206
                    ex return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5207
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5208
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5209
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5210
            self topView raiseDeiconified.    
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5211
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5212
            eMsg := ex description.
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5213
            (ex signal isControlInterrupt) ifTrue:[
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5214
                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
  5215
            ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5216
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5217
            answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5218
                        choose:('Error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5219
                        labels:#( 'Proceed' 'Cancel' 'Debug' ) 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5220
                        values:#( #proceed #cancel #debug ) 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5221
                        default:#cancel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5222
            answer == #debug ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5223
                'DebugView [info]: cought exception - debugging' infoPrintCR.
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5224
                Debugger 
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5225
                    enterUnconditional:(ex suspendedContext) 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5226
                    withMessage:'Error in debugger: ' , eMsg
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5227
                    mayProceed:true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5228
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5229
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5230
            answer == #proceed ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5231
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5232
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5233
            ].
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5234
            'DebugView [info]: cought exception - returning' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5235
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5236
        ] do:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5237
            "/ make certain that sub-debuggers, inspectors etc.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5238
            "/ come up on my device.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5239
            Screen currentScreenQuerySignal answer:device
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5240
            do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5241
                windowGroup 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5242
                    eventLoopWhile:[Processor activeProcess state:#debug.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5243
                                      true] 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5244
                    onLeave:[]
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5245
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5246
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5247
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5248
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5249
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5250
    "Created: / 24.11.1995 / 20:33:45 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5251
    "Modified: / 18.11.2001 / 01:04:17 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5252
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5253
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5254
!DebugView methodsFor:'user interaction'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5255
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5256
checkIfCodeIsReallyModified
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5257
    |source|
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5258
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5259
    codeView modified ifFalse:[^ false].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5260
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5261
    currentMethod isNil ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5262
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5263
    ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5264
    source := currentMethod source.
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5265
    source notNil ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5266
        source string = codeView contents string ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5267
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5268
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5269
        (source string withTabsExpanded:8) = (codeView contents string withTabsExpanded:8) ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5270
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5271
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5272
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5273
    ^ true
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5274
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5275
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5276
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5277
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5278
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5279
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5280
checkSelectionChangeAllowed:newSelection
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5281
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5282
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5283
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5284
    and:[newSelection = contextView selection]) ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5285
        ^ true
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5286
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5287
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5288
    (self confirm:('Code modified - change selection anyway ?')) ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5289
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5290
    ].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5291
    codeView modified:false.
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5292
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5293
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5294
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5295
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5296
codeAccept:someCode
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5297
    "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
  5298
     and including selected method cannot be continued."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5299
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5300
    ^ 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
  5301
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5302
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5303
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5304
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5305
codeAccept:someCode unwind:doUnwind category:givenCategoryOrNil onCancel:cancelAction
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5306
    "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
  5307
     and including selected method cannot be continued."
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5308
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5309
    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5310
     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
  5311
     executed correctly - however, the code shown in the debugger is no
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5312
     longer in sync (showing the new code) with the executed code.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5313
     Therefore, we hide those contexts to avoid confusion ....
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5314
     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
  5315
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5316
    "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
  5317
     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
  5318
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5319
    |con top sel implementorClass method newMethod category|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5320
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5321
    codeView withWaitCursorDo:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5322
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5323
         find the method-home context for this one
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5324
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5325
        con := selectedContext.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5326
        top := con.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5327
        [con notNil] whileTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5328
            (con methodHome == selectedContext) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5329
                top := con
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5330
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5331
            con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5332
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5333
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5334
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5335
         use class&selector to find the method for the compilation
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5336
         and compile.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5337
        "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5338
        category := givenCategoryOrNil.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5339
        sel := selectedContext selector.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5340
        implementorClass := selectedContext methodClass.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5341
        implementorClass notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5342
            category isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5343
                method := implementorClass compiledMethodAt:sel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5344
                category := method category    
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5345
            ]    
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5346
        ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5347
            implementorClass := selectedContext receiver class.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5348
            implementorClass ~~ Object ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5349
                implementorClass := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5350
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5351
                                        initialAnswer:implementorClass name
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5352
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5353
                implementorClass size == 0 ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5354
                    ^ cancelAction value "/ cancelled
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5355
                ].
3928
70d024aa8434 class from name fix
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  5356
                implementorClass := Smalltalk classNamed:implementorClass.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5357
                implementorClass isNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5358
                    Dialog warn:'No such class'.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5359
                    ^ cancelAction value "/ cancelled
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5360
                ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5361
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5362
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5363
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5364
        "/
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5365
        "/ provide the classes nameSpace on a query;
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5366
        "/ in case we accept while in another nameSpace context,
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5367
        "/ (but for a class which is somewhere else)
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5368
        "/
6818
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5369
        (Class updateChangeFileQuerySignal, 
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5370
         Class updateChangeListQuerySignal,
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5371
         Class updateHistoryLineQuerySignal) answer:true
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5372
        do:[
6171
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5373
            Class nameSpaceQuerySignal
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5374
            answer:(implementorClass nameSpace)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5375
            do:[
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5376
                Class packageQuerySignal
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5377
                answer:(implementorClass package ? Project noProjectID)
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5378
                do:[
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5379
                    codeView contents:someCode.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5380
                    newMethod := implementorClass compilerClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5381
                                     compile:someCode
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5382
                                     forClass:implementorClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5383
                                     inCategory:category
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5384
                                     notifying:codeView.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5385
                ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5386
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5387
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5388
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5389
        inspecting ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5390
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5391
             if it worked, remove everything up to and including top
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5392
             from context chain
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5393
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5394
            (newMethod notNil and:[newMethod ~~ #Error]) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5395
                codeView modified:false.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5396
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5397
                doUnwind ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5398
                    selectedContext canReturn ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5399
                        self setContext:(top "sender").
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5400
                        exitAction := #restart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5401
                        selectedContext setLineNumber:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5402
                        self doRestart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5403
                    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5404
                        self setContext:(top sender).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5405
                        exitAction := #return.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5406
                    ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5407
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5408
                    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5409
                     continue/step is no longer possible
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5410
                    "
4120
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5411
                    "/ continueButton disable.
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5412
                    "/ canContinue := false.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5413
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5414
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5415
                contextView selection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5416
                "/ self showSelection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5417
                "/ contextView makeSelectionVisible. "/ scrollToLine:(selection - 1)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5418
            ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5419
                ^ cancelAction value
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5420
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5421
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5422
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5423
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5424
    "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
  5425
    "Modified: / 29-08-2006 / 14:22:22 / cg"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5426
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5427
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5428
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5429
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5430
     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
  5431
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5432
    (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
  5433
        ^ true
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5434
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5435
    ^ super confirm:aString.
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5436
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5437
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  5438
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  5439
    "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
  5440
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5441
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5442
    BreakPointInterrupt handle:[:ex |
6215
fc3c3024cdfa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6178
diff changeset
  5443
        ignoreBreakpoints ifFalse:[ex reject].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5444
        'DebugView [info]: breakpoint in debugger ignored [doShowSelection.]' infoPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5445
        ex proceed
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5446
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5447
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5448
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5449
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5450
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5451
    "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
  5452
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5453
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5454
hideStackInspector 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5455
    stackInspector notNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5456
        stackInspector destroy.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5457
        stackInspector := nil.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5458
        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
  5459
        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
  5460
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5461
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5462
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5463
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5464
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5465
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5466
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5467
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5468
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5469
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5470
    evView notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5471
        focusView := evView windowGroup focusView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5472
        focusView isNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5473
            focusView := evView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5474
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5475
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5476
        anEvent isKeyPressEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5477
            key := anEvent key.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5478
            rawKey := anEvent rawKey.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5479
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5480
            inCodeView := (focusView == codeView
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5481
                          or:[focusView isComponentOf:codeView]).
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5482
            inCodeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5483
                key == #CodeCompletion ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5484
                    "/ complete the word before/under the cursor.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5485
"/                    self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5486
"/                        enqueueMessage:#codeCompletion
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5487
"/                        for:self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5488
"/                        arguments:#().
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5489
                    ^ true
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5490
                ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5491
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5492
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5493
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5494
false ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5495
        anEvent isButtonReleaseEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5496
            anEvent view == codeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5497
                (RBParser notNil and:[RBParser isLoaded])
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5498
                ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5499
                    self sensor 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5500
                        pushEvent:anEvent.  "/ must be first in queue
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5501
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5502
                    self sensor
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5503
                      pushUserEvent:#explainSelection
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5504
                      for:self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5505
                      withArguments:nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5506
                    ^ true  "/ eaten
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5507
                ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5508
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5509
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5510
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5511
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5512
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5513
    ^ false
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5514
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5515
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5516
showSelection:lineNr
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5517
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5518
     Also sent to autoselect an interesting context on entry."
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5519
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5520
    Notification 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5521
        handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5522
            [:ex |
5879
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5523
                "/ ex suspendedContext fullPrintAll.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5524
                Transcript showCR:ex description.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5525
                "/ Transcript showCR:ex parameter.
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5526
                ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5527
            ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5528
        do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5529
            [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5530
                Error 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5531
                    handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5532
                        [:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5533
                            |s con|
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5534
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5535
                            ex signal isControlInterrupt 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5536
                                ifTrue:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5537
                                    [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5538
                                        'DebugView [info]: halt/break ignored - while showing selection in debugger' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5539
                                        ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5540
                                    ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5541
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5542
                            'DebugView [info]: error when showing selection in debugger ignored' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5543
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5544
                            s := '' writeStream.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5545
                            s nextPutLine:'**** error in debugger, while extracting source'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5546
                            s nextPutLine:'****'.
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5547
                            s nextPutAll: '**** '; nextPutLine:(ex description "withCRs").
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5548
                            s nextPutLine:'****'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5549
                            con := ex suspendedContext.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5550
                            s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5551
                            con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5552
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5553
                            con fullPrintAllOn:s.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5554
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5555
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5556
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5557
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5558
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5559
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5560
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5561
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5562
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5563
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5564
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5565
"/                            ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5566
                            codeView contents:(s contents).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5567
                            ex return.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5568
                        ] 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5569
                    do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5570
                        [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5571
                            self doShowSelection:lineNr
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5572
                        ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5573
            ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5574
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5575
    "Modified: / 04-07-2006 / 14:50:06 / cg"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5576
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5577
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5578
showStackInspectorFor:con 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5579
    stackInspector isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5580
        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
  5581
        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
  5582
        stackInspector := InspectorView 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5583
                    origin:(0.6 @ 0.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5584
                    corner:(1.0 @ 1.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5585
                    in:contextInspector superView.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5586
        stackInspector realize.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5587
        stackInspector fieldListLabel:'Stack'.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5588
        stackInspector hideReceiver:true
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5589
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5590
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5591
    stackInspector showLast
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5592
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5593
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5594
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5595
    "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
  5596
     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
  5597
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
  5598
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
  5599
     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
  5600
     sender selSender tryVars possibleBlocks errMsg 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5601
     codeSet highlighter evaluatorClass
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5602
     canDefine|
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5603
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5604
    canDefine := false.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5605
    currentMethod := nil.
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5606
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5607
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5608
        lineNr <= contextArray size ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5609
            con := contextArray at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5610
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5611
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5612
         clicking on the '** ...'-line shows more ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5613
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5614
        con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5615
            line := contextView list at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5616
            (line startsWith:'**') ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5617
                self showMore.
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5618
                lineNr >= contextArray size ifTrue:[
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5619
                    contextView setSelection:lineNr.
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  5620
                    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
  5621
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5622
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5623
            con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5624
                codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5625
                ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5626
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5627
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5628
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5629
        selectedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5630
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5631
        (m notNil and:[selectedContext notNil]) ifTrue:[
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5632
            m enableAll:#(browseImplementors browseSenders inspectContext)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5633
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5634
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  5635
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5636
            codeSet := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5637
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5638
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5639
             give it to the (lower right) inspector
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5640
            "
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5641
            Error handle:[:ex |
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5642
                'DebugView [warning]: error while accessing context' errorPrintCR.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5643
                contextInspector inspect:nil.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5644
ex reject.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5645
            ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5646
                contextInspector inspect:con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5647
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5648
            ].
1386
55632b45ced2 more skipping in dense backtrace
Claus Gittinger <cg@exept.de>
parents: 1372
diff changeset
  5649
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5650
            "/ show a stack inspector sometimes
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5651
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5652
            con hasStackToShow ifTrue:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5653
                self showStackInspectorFor:con
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5654
            ] ifFalse:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5655
                self hideStackInspector
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5656
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5657
7328
30ae29195ebc avoid unneeded test
Stefan Vogel <sv@exept.de>
parents: 7112
diff changeset
  5658
            homeContext := con methodHome.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5659
            con canReturn ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5660
                returnButton enable. restartButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5661
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5662
                returnButton disable. restartButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5663
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5664
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5665
            lineNrInMethod := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5666
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5667
            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5668
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5669
            homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5670
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5671
                 mhmh - an optimized block
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5672
                 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
  5673
                 that one ...
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5674
                 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
  5675
                 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
  5676
                 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
  5677
                 (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
  5678
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5679
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5680
                "temporary kludge - peek into the sender context.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5681
                 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
  5682
                 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
  5683
                 This helps in some cases.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5684
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5685
                (sender := con sender) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5686
                    tryVars := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5687
                    (selSender := sender selector) notNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  5688
                        ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5689
                            tryVars := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5690
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5691
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5692
                    tryVars ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5693
                        possibleBlocks := sender argsAndVars select:[:v | v isBlock].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5694
                        possibleBlocks := possibleBlocks select:[:b | b home isNil].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5695
                        possibleBlocks size == 1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5696
                            method := possibleBlocks first method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5697
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5698
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5699
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5700
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5701
                "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
  5702
                rec := homeContext receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5703
                sel := homeContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5704
                sel notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5705
                    canAccept := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5706
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5707
                    implementorClass := homeContext methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5708
                    implementorClass isNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  5709
                        Error handle:[:ex |
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5710
                            ex signal == BreakPointInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5711
                                ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5712
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5713
                            code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5714
                            code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5715
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5716
                                
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5717
                            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5718
                            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5719
                        ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5720
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5721
                             special: look if this context was created by
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5722
                             valueWithReceiver kind of method invocation;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5723
                             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
  5724
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5725
                            ((sender := homeContext sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5726
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5727
                            and:[sender receiver isMethod]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5728
                                method := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5729
                                canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5730
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5731
                                (method := con method) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5732
                                    canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5733
                                ]
5664
c97684d07432 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5504
diff changeset
  5734
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5735
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5736
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5737
                        method := implementorClass compiledMethodAt:sel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5738
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5739
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5740
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5741
            code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5742
                errMsg := nil.
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5743
                method isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5744
                    "/ fall back heuristics
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5745
                    con isBlockContext ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5746
                        ((sender := con sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5747
                        and:[((sender selector ? '') startsWith:'value')
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5748
                        and:[sender receiver isBlock]]) ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5749
                            code := sender receiver source.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5750
                        ]
5170
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5751
                    ] ifFalse:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5752
                        ((sender := con sender) notNil
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5753
                        and:[((sender selector ? '') startsWith:'valueWith')
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5754
                        and:[sender receiver isMethod]]) ifTrue:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5755
                            method := sender receiver.
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5756
                        ]
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5757
                    ]
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5758
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5759
                method notNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  5760
                    Error handle:[:ex |
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5761
                        ex signal isControlInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5762
                            ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5763
                        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5764
                        code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5765
                        code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5766
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5767
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5768
                        canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5769
                        ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5770
                    ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5771
                        self sensor shiftDown ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5772
                            code := method decompiledSource
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5773
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5774
                            code := method source.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5775
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5776
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5777
                    code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5778
                        method sourceFilename notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5779
                            codeView contents:(resources 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5780
                                                       string:'** no sourcefile: %1 **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5781
                                                       with:method sourceFilename).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5782
                            codeView flash.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5783
                            codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5784
                        ] ifFalse:[
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5785
                            [
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5786
                                |src|
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5787
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5788
                                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
  5789
                                codeView contents:src.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5790
                                codeSet := true.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5791
                            ] on: Error do:[
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5792
                                errMsg := '** no source **'
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5793
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5794
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5795
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5796
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5797
                    homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5798
                        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
  5799
                    ] ifFalse:[
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5800
                        errMsg := '** no method - no source **'.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5801
                        canDefine := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5802
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5803
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5804
                errMsg notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5805
                   self showError:errMsg.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5806
                   codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5807
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5808
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5809
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5810
            code isNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  5811
                "/ canAccept := false.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5812
                codeSet ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5813
                    codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5814
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5815
            ] ifFalse:[
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5816
                lineNrInMethod == 0 ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5817
                    (method notNil and:[method isJavaMethod]) ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5818
                        lineNrInMethod := method lineNumber
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5819
                    ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5820
                    "/ guess lineNumber from sent-messages selector
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5821
                    "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5822
                    lineNrInMethod == 0 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5823
                        |conIdx sentContext messages|
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5824
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5825
                        conIdx := contextArray identityIndexOf:con.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5826
                        conIdx > 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5827
                            sentContext := contextArray at:conIdx-1.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5828
                            sentContext isBlockContext ifFalse:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5829
                                (method notNil and:[code notNil]) ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5830
                                    messages := method messagesSent.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5831
                                    messages size == 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5832
                                        sentContext selector == messages first ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5833
                                            lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5834
                                        ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5835
                                    ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5836
                                ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5837
                            ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5838
                        ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5839
                    ].
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5840
                ].
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5841
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5842
                UserPreferences current syntaxColoring ifTrue:[
2709
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5843
                    implementorClass isNil ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5844
                        (con isBlockContext
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5845
                        and:[con home isNil
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5846
                        and:[con guessedHome notNil]])
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5847
                        ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5848
                            implementorClass := con guessedHome mclass
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5849
                        ]
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5850
                    ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5851
                    implementorClass notNil ifTrue:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5852
                        (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  5853
                            code size < 100000 ifTrue:[
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5854
                                Error handle:[:ex |
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5855
                                ] do:[
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5856
                                    code := highlighter formatMethod:code in:implementorClass.
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5857
                                ]
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  5858
                            ]
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5859
                        ]
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5860
                    ]
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5861
                ].
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5862
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5863
"/                code ~= (codeView contents) ifTrue:[
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5864
                    codeView setContents:code.
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5865
"/                ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5866
                (lineNrInMethod notNil 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5867
                and:[lineNrInMethod ~~ 0
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5868
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  5869
lineNrInMethod == 255 ifFalse:[
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5870
                    (lineNrInMethod == 255 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5871
                    and:[method notNil
1960
e317efd283b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1926
diff changeset
  5872
                    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
  5873
                        "/ 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
  5874
                        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
  5875
                    ] ifFalse:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5876
                        codeView selectLine:lineNrInMethod.
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5877
                    ].
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5878
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  5879
].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5880
                ] ifFalse:[
1694
Claus Gittinger <cg@exept.de>
parents: 1693
diff changeset
  5881
                    codeView unselect.
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5882
                    codeView scrollToTop
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5883
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5884
            ].
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
            codeView acceptEnabled:canAccept.
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5887
            canAccept ifTrue:[
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5888
                codeView acceptAction:[:code | self codeAccept:code asString]
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5889
            ] ifFalse:[
6046
81b2da24a0b6 Send #beep to window instead of device
Stefan Vogel <sv@exept.de>
parents: 6034
diff changeset
  5890
                codeView acceptAction:[:code | self beep]
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5891
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5892
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5893
            receiverInspector inspect:rec.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5894
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5895
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5896
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5897
             the one below is wrong: currently, the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5898
             evaluator cannot handle passed contexts.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5899
             Once it does, pass con as in:-arg
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5900
            "
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5901
            (rec isJavaObject
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5902
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5903
                "/ although a java object, use the smalltalk parser here for doIts.
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5904
                evaluatorClass := Parser
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5905
            ] ifFalse:[
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5906
                evaluatorClass := rec class evaluatorClass
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5907
            ].
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5908
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5909
            codeView doItAction:[:theCode |
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5910
                             evaluatorClass 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5911
                                 evaluate:theCode 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5912
                                 in:actualContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5913
                                 receiver:rec 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5914
                                 notifying:codeView 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5915
                                 logged:true 
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5916
                                 ifFail:nil 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5917
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5918
            currentMethod := method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5919
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5920
            selectedContext := homeContext.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5921
            actualContext := con
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5922
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5923
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5924
        codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5925
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5926
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5927
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5928
    con isContext ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5929
        sendButton disable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5930
    ] ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5931
        sendButton enable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5932
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5933
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5934
    "clear out locals to prevent keeping around unneeded contexts 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5935
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5936
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5937
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5938
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5939
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5940
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5941
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5942
    canDefine ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5943
        defineButton beVisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5944
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5945
        defineButton beInvisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5946
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5947
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5948
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5949
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5950
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5951
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5952
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5953
    "Created: / 14-08-1997 / 20:15:00 / cg"
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5954
    "Modified: / 27-10-2006 / 14:19:32 / cg"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5955
!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5956
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5957
updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5958
    |m mthd cls mCls rCls|
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5959
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5960
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5961
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5962
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5963
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5964
    m notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5965
        m disable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5966
        m disable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5967
        canShowMore ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5968
            m disable:#showMore
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5969
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5970
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5971
        selectedContext notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5972
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5973
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5974
            mthd := selectedContext method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5975
            mthd notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5976
                cls := mCls := mthd containingClass.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5977
                mthd isBreakpointed ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5978
                    m enable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5979
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5980
                    m enable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5981
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5982
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5983
            rCls := selectedContext receiver class.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5984
            cls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5985
                cls := rCls
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5986
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5987
            cls notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5988
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5989
                rCls == mCls ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5990
                    m disable:#browseReceiversClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5991
                ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5992
                mCls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5993
                    m disable:#browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5994
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5995
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5996
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5997
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5998
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5999
        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6000
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6001
        ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6002
    ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6003
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6004
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6005
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6006
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6007
version
7628
a2c2878586ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7627
diff changeset
  6008
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.410 2007-02-06 17:52:10 cg Exp $'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6009
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6010
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6011
DebugView initialize!