DebugView.st
author Claus Gittinger <cg@exept.de>
Thu, 29 May 2008 15:29:35 +0200
changeset 8154 d755b646fc9d
parent 8152 4720caf862eb
child 8161 c3a91c963a35
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
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
    30
		DebuggingDebugger DefaultDebuggerBackgroundColor
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
    31
		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
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
    98
    InitialNChainShown := 20.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
    99
    "/ DefaultDebuggerBackgroundColor := nil.
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   100
    "/ DefaultDebuggerBackgroundColor := Color red lightened.
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
   101
    "/ DefaultDebuggerBackgroundColor := Color blue lightened lightened.
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   102
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   103
    "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
   104
    "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
   105
!
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
   106
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   107
reinitialize
7822
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   108
    "reinitialize after an image-restart"
3438bb87dda0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7797
diff changeset
   109
243
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   110
    self newDebugger
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   111
! !
4cdc71d87dd4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 212
diff changeset
   112
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   113
!DebugView class methodsFor:'instance creation'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   114
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   115
enter
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   116
    "enter a debugger"
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   117
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   118
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   119
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   120
    self enter:thisContext sender withMessage:'debugger entered' mayProceed:true.
2421
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   121
!
9b166a3ce3cd checkin from browser
ca
parents: 2404
diff changeset
   122
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   123
enter:aContext withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   124
    "enter a debugger"
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   125
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   126
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   127
2355
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   128
    ^ self
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   129
        enter:aContext 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   130
        withMessage:aString 
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   131
        mayProceed:true
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   132
!
5c881cb45539 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2352
diff changeset
   133
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   134
enter:aContext withMessage:aString mayProceed:mayProceed
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   135
    "enter a debugger; if this is a recursive invocation, enter
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   136
     a MiniDebugger instead.
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   137
     This is the standard way of entering the debugger;
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   138
     sent from error- and halt messages."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   139
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   140
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   141
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
   142
    |active|
93
claus
parents: 92
diff changeset
   143
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
   144
    StepInterruptPending := nil.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   145
    ControlInterrupt handle:[:ex |
4676
c809ebc38db9 more info on an ignored breakpoint
Claus Gittinger <cg@exept.de>
parents: 4644
diff changeset
   146
        '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
   147
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   148
        ex proceed
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   149
    ] do:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   150
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   151
         well, it could be a stepping or sending debugger up there;
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   152
         in this case, return to it. This happens, when a stepping process
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   153
         runs into an error (for example, a halt). In this case, we want the
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   154
         stepping debugger to come up again instead of a new one.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   155
        "
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   156
        OpenDebuggers notNil ifTrue:[
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   157
            active := Processor activeProcess.
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   158
            OpenDebuggers do:[:aDebugger |
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   159
                (aDebugger inspectedProcess == active) ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   160
                    aDebugger device isOpen ifTrue:[
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   161
                        "/ 'entering stepping debugger again' printNL.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   162
                        aDebugger unstep.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   163
                        aDebugger setLabelFor:aString in:active.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   164
                        aDebugger mayProceed:mayProceed.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   165
                        ^ aDebugger enter:aContext select:nil.
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   166
                    ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   167
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   168
            ]
3998
a5d701d3802c ignore breakpoints within debugger
penk
parents: 3928
diff changeset
   169
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   170
    ].
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   171
    ^ self enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
526
8be290d825d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 508
diff changeset
   172
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   173
    "Modified: / 18.11.2001 / 00:48:03 / cg"
53
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   174
!
2fc78a0165e7 *** empty log message ***
claus
parents: 52
diff changeset
   175
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
   176
enterUnconditional:aContext withMessage:aString mayProceed:mayProceed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   177
    "enter a debugger - do not check for recursive invocation"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   178
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   179
    <context: #return>
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
   180
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   181
    |aDebugger|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   182
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   183
    StepInterruptPending := nil.
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   184
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   185
    "/ ignore halts & breakpoints while setting up the debugger
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   186
    "/ to avoid recursive debugging ...
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   187
    ControlInterrupt handle:[:ex |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   188
        '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
   189
        ('DebugView [info]: breakpoint on:' , ex suspendedContext printString) infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   190
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   191
    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   192
        aDebugger := self new.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   193
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   194
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   195
    aDebugger isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   196
        'DebugView [error]: cannot open debugger' errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   197
        'DebugView [error]: Exception: ' errorPrint. aString errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   198
        mayProceed ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   199
            (Dialog confirm:'Error/Breakpoint cought.\\Press Continue or Abort.' withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   200
                   yesLabel:'Continue' noLabel:'Abort')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   201
            ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   202
                ^ nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   203
            ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   204
        ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   205
            self information:'Error cought.\\Press OK to abort the operation.' withCRs.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   206
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   207
        AbortOperationRequest raise.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   208
        "not reached"
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
   209
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   210
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   211
    aDebugger mayProceed:mayProceed.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   212
    aDebugger setLabelFor:aString in:Processor activeProcess.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   213
    aDebugger enter:aContext select:nil.
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   214
    ^ nil.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   215
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   216
    "
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   217
        nil halt
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   218
    "
1244
413709b30fd2 more care for breakpoints in debugger
Claus Gittinger <cg@exept.de>
parents: 1240
diff changeset
   219
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   220
    "Modified: / 18.11.2001 / 00:29:23 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   221
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   222
6430
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   223
enterWithMessage:message
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   224
    "enter a debugger"
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   225
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   226
    <context: #return>
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   227
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   228
    self enter:(thisContext sender) withMessage:message mayProceed:true.
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   229
!
7673388c3254 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6366
diff changeset
   230
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   231
new
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   232
    "return a new DebugView. 
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   233
     - return a cached debugger if it already exists.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   234
     Also, care for remote displays on which no debugger is wanted
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   235
     (ask with mayOpenDebugger) - if so, open on the default screen."
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   236
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   237
    |debugger currentScreen debuggerDevice|
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   238
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   239
    currentScreen := Screen current.
14
e07eee5d93ca *** empty log message ***
claus
parents: 13
diff changeset
   240
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   241
    currentScreen notNil ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   242
        (currentScreen suppressDebugger) ifTrue:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   243
            "/ 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
   244
            ^ nil.
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   245
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   246
        (currentScreen mayOpenDebugger) ifFalse:[
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   247
            "/ 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
   248
            currentScreen := Screen default.
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   249
        ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   250
    ].
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   251
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   252
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   253
     need a blocking debugger if no processes or 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   254
     or if its a timing/interrupt process 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   255
     (because otherwise we would not get any events here ...
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   256
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   257
    Processor activeProcessIsSystemProcess ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   258
        ((debugger := CachedExclusive) isNil 
2426
97d6bd65e3c9 robustness in case of startup errors due to
ca
parents: 2421
diff changeset
   259
        or:[debugger device ~~ currentScreen
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   260
        or:[currentScreen isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   261
        or:[currentScreen isOpen not]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   262
            debugger := self newExclusive
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   263
        ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   264
        CachedExclusive := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   265
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   266
        CachedDebugger notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   267
            (CachedDebugger device ~~ currentScreen 
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   268
            or:[currentScreen isNil
7981
658dac13ed05 cache only my real instances (not sub-instances)
Claus Gittinger <cg@exept.de>
parents: 7971
diff changeset
   269
            or:[currentScreen isOpen not
658dac13ed05 cache only my real instances (not sub-instances)
Claus Gittinger <cg@exept.de>
parents: 7971
diff changeset
   270
            or:[CachedDebugger class ~~ self]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   271
                CachedDebugger := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   272
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   273
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   274
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
   275
        (debugger := CachedDebugger) notNil ifTrue:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   276
            CachedDebugger := nil.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   277
        ] ifFalse:[
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   278
            debuggerDevice := currentScreen.
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   279
            debuggerDevice isNil ifTrue:[
2352
a1fd9c17f18a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   280
                "/ use the default display
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   281
                debuggerDevice := Screen default.
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   282
            ].
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   283
            (debuggerDevice isNil
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   284
            or:[debuggerDevice isOpen not
3030
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   285
            "/ or:[debuggerDevice mayOpenDebugger not]
5adb33d5111d fixed devices mayOpenDebugger / suppressDebugger handling.
Michael Beyl <mb@exept.de>
parents: 2963
diff changeset
   286
            ]) ifTrue:[
2554
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   287
                "/ no debugger
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   288
                ^ nil.
0e37316a8787 Do not try to use an unconnected display
Stefan Vogel <sv@exept.de>
parents: 2476
diff changeset
   289
            ].
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   290
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   291
            Screen currentScreenQuerySignal answer:debuggerDevice
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   292
            do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   293
                debugger := super new.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   294
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   295
            debugger label:'Debugger'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   296
            debugger icon:self defaultIcon.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   297
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   298
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   299
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   300
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
   301
    "Modified: 31.7.1997 / 21:20:27 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   302
!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   303
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   304
newExclusive
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   305
    "return a debugger for exclusive display access"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   306
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   307
    |debugger|
105
claus
parents: 101
diff changeset
   308
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   309
    debugger := super new.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   310
    debugger label:'Debugger'.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   311
    debugger icon:self defaultIcon.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   312
    debugger exclusive:true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
   313
    ^ debugger
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   314
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   315
    "Modified: 1.1.1970 / 23:27:06 / cg"
105
claus
parents: 101
diff changeset
   316
!
claus
parents: 101
diff changeset
   317
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   318
openOn:aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   319
    "start a  debugger on aProcess
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   320
     (actually not more than a good-looking inspector)"
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   321
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
   322
    |aDebugger label nm|
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   323
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   324
    aDebugger := super new.
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   325
    aDebugger icon:self defaultIcon.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   326
    aProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   327
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   328
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   329
            nm := (nm contractTo:17) , '-' , aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   330
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   331
            nm := aProcess id printString
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   332
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   333
        label := 'Debugger [' , nm , ']'.
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   334
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
   335
        label := 'no process'
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
   336
    ].
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   337
    aDebugger label:label iconLabel:'Debugger'.
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   338
    aDebugger openOn:aProcess.
7fc8fcef7bc6 *** empty log message ***
claus
parents: 14
diff changeset
   339
    ^ nil
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   340
1114
c663a9b0a1dc checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1101
diff changeset
   341
    "Modified: 4.4.1997 / 16:22:36 / cg"
126
claus
parents: 124
diff changeset
   342
! !
claus
parents: 124
diff changeset
   343
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
   344
!DebugView class methodsFor:'cleanup'!
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   345
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   346
lowSpaceCleanup 
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   347
    "in low memory situations, give up cached debuggers"
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
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   350
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   351
    OpenDebuggers := nil.
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
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   354
     DebugView lowSpaceCleanup
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
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   357
    "Modified: 18.4.1996 / 16:48:03 / cg"
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
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   360
newDebugger
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
   361
    "force creation of a new debugger (give up cached debuggers)"
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   362
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   363
    CachedDebugger := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   364
    CachedExclusive := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   365
    OpenDebuggers := nil.
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   366
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
   367
    (Debugger isBehavior and:[Debugger name = #DebugView]) ifTrue:[
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   368
        Debugger := self
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   369
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
   370
485
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   371
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   372
     DebugView newDebugger
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   373
    "
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   374
! !
e9a0636c4fca category rename
Claus Gittinger <cg@exept.de>
parents: 477
diff changeset
   375
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   376
!DebugView class methodsFor:'defaults'!
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   377
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   378
defaultIcon
7632
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   379
    "return the browsers default window icon"
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   380
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   381
    <resource: #programImage>
dec23bc52ab8 defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7628
diff changeset
   382
7647
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   383
    ^ ToolbarIconLibrary debug22x22Icon    
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   384
    "/ ^ ToolbarIconLibrary debugIt20x20Icon
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   385
Claus Gittinger <cg@exept.de>
parents: 7632
diff changeset
   386
    "Modified: / 11-02-2007 / 11:47:20 / cg"
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   387
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   388
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   389
defaultVerboseBacktrace
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   390
    <resource: #obsolete>
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   391
    self obsoleteMethodWarning.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   392
    ^ UserPreferences current verboseBacktraceInDebugger
937
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   393
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   394
    "Created: 11.1.1997 / 12:14:35 / cg"
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   395
!
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   396
e1520a0db57e added VerboseBacktraceDefault classVar
Claus Gittinger <cg@exept.de>
parents: 936
diff changeset
   397
defaultVerboseBacktrace:aBoolean
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   398
    <resource: #obsolete>
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   399
    self obsoleteMethodWarning.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
   400
    UserPreferences current verboseBacktraceInDebugger:aBoolean
3441
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   401
!
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   402
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   403
updateStyleCache
6136
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   404
    "extract values from the styleSheet and cache them in class variables"
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   405
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   406
    <resource: #style (#'debugView.viewBackgroundColor')>
1ccda6229a32 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6132
diff changeset
   407
3441
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   408
    DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   409
3b2b4a2d7f89 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3438
diff changeset
   410
    "Modified: / 17.11.2001 / 17:31:42 / cg"
875
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   411
! !
f8ee393ca634 use Image instead of Form
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   412
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   413
!DebugView class methodsFor:'menu specs'!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   414
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   415
menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   416
    "This resource specification was automatically generated
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   417
     by the MenuEditor of ST/X."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   418
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   419
    "Do not manually edit this!! If it is corrupted,
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   420
     the MenuEditor may not be able to read the specification."
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   421
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   422
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   423
     MenuEditor new openOnClass:DebugView andSelector:#menuSpec
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   424
     (Menu new fromLiteralArrayEncoding:(DebugView menuSpec)) startUp
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   425
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   426
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   427
    <resource: #menu>
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   428
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   429
    ^ 
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   430
     #(Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   431
        (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   432
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   433
            label: 'View'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   434
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   435
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   436
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   437
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   438
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   439
                  enabled: canShowMore
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   440
                  label: 'Show More WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   441
                  itemValue: showMore
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   442
                  translateLabel: true
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   443
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   444
               (MenuItem
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   445
                  label: 'Show Verbose WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   446
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   447
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   448
                  isVisible: showingDenseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   449
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   450
               (MenuItem
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   451
                  label: 'Show Dense WalkBack'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   452
                  itemValue: toggleVerboseWalkback
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   453
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   454
                  isVisible: showingVerboseWalkback
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   455
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   456
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   457
                  label: '-'
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   458
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   459
               (MenuItem
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   460
                  label: 'Raise Debugger when Entering'
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   461
                  itemValue: autoRaiseView:
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   462
                  translateLabel: true
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   463
                  indication: autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   464
                )
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   465
               (MenuItem
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   466
                  label: '-'
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   467
                )
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   468
               (MenuItem
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   469
                  label: 'Exit'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   470
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   471
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   472
                  isVisible: isInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   473
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   474
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   475
                  label: 'Close Debugger and Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   476
                  itemValue: closeRequest
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   477
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   478
                  isVisible: isNotInspecting
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   479
                )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   480
               )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   481
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   482
              nil
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   483
            )
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
   484
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   485
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   486
            label: 'Process'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   487
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   488
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   489
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   490
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   491
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   492
                  label: 'Continue'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   493
                  itemValue: doContinue
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   494
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   495
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   496
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   497
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   498
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   499
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   500
                  label: 'Abort'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   501
                  itemValue: doAbort
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   502
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   503
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   504
               (MenuItem
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   505
                  enabled: abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   506
                  label: 'Abort All'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   507
                  itemValue: doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   508
                  translateLabel: true
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   509
                )
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
   510
               (MenuItem
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   511
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   512
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   513
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   514
                  label: 'Terminate'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   515
                  itemValue: doTerminate
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   516
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   517
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   518
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   519
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   520
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   521
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   522
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   523
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   524
            label: 'Context'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   525
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   526
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   527
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   528
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   529
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   530
                  enabled: canReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   531
                  label: 'Return'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   532
                  itemValue: doReturn
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   533
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   534
                )
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   535
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   536
                  enabled: canRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   537
                  label: 'Restart'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   538
                  itemValue: doRestart
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   539
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   540
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   541
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   542
                  label: '-'
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   543
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   544
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   545
                  enabled: hasContextSelected
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   546
                  label: 'Inspect'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   547
                  itemValue: inspectContext
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   548
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   549
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   550
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   551
                  label: 'Copy WalkBack Text'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   552
                  itemValue: copyWalkbackText
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   553
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   554
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   555
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   556
                  label: 'Bookmark Method in SystemBrowser'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   557
                  itemValue: addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   558
                  translateLabel: true
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   559
                )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   560
               )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   561
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   562
              nil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   563
            )
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   564
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   565
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   566
            label: 'Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   567
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   568
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   569
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   570
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   571
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   572
                  enabled: canBrowseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   573
                  label: 'Browse Implementing Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   574
                  itemValue: browseImplementingClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   575
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   576
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   577
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   578
                  enabled: canBrowseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   579
                  label: 'Browse Receivers Class'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   580
                  itemValue: browseReceiversClass
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   581
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   582
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   583
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   584
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   585
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   586
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   587
                  enabled: canBrowseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   588
                  label: 'Browse Receivers Class Hierarchy'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   589
                  itemValue: browseClassHierarchy
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   590
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   591
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   592
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   593
                  enabled: canBrowseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   594
                  label: 'Browse Receivers Full Protocol'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   595
                  itemValue: browseFullClassProtocol
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   596
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   597
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   598
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   599
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   600
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   601
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   602
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   603
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   604
            label: 'Selector'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   605
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   606
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   607
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   608
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   609
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   610
                  label: 'Browse Implementors...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   611
                  itemValue: browseImplementorsOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   612
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   613
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   614
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   615
                  label: 'Browse Senders...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   616
                  itemValue: browseSendersOf
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   617
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   618
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   619
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   620
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   621
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   622
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   623
                  enabled: canDefineMethod
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   624
                  label: 'Define Missing Method'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   625
                  itemValue: doDefineMethod
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   626
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   627
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   628
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   629
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   630
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   631
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   632
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   633
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   634
            label: 'Breakpoint'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   635
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   636
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   637
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   638
              (
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   639
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   640
                  enabled: canRemoveBreakpoint
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   641
                  label: 'Remove Breakpoint'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   642
                  itemValue: removeBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   643
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   644
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   645
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   646
                  label: 'Remove all Breakpoints'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   647
                  itemValue: removeAllBreakpoints
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   648
                  translateLabel: true
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   649
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   650
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   651
                  label: '-'
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
   652
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   653
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   654
                  enabled: canAddBreakpoint
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
   655
                  label: 'Add Breakpoint'
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   656
                  itemValue: addBreakpoint
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   657
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   658
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   659
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   660
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   661
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   662
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   663
                  label: 'Allow Breakpoints in Debugger'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   664
                  itemValue: allowBreakPointsInDebugger:
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   665
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   666
                  indication: allowBreakPointsInDebugger
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   667
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   668
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   669
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   670
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   671
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   672
          )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   673
         (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   674
            label: 'Help'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   675
            translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   676
            startGroup: right
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   677
            submenu: 
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   678
           (Menu
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   679
              (
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: 'Debuggers Documentation'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   682
                  itemValue: openHTMLDocument:
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   683
                  translateLabel: true
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   684
                  argument: 'tools/debugView/TOP.html'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   685
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   686
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   687
                  label: '-'
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   688
                )
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   689
               (MenuItem
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   690
                  label: 'About DebugView...'
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   691
                  itemValue: openAboutThisApplication
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
   692
                  translateLabel: true
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   693
                )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   694
               )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   695
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   696
              nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   697
            )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   698
          )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   699
         )
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   700
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   701
        nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
   702
      )
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   703
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
   704
    "Modified: / 15-05-2007 / 13:31:52 / cg"
3269
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
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   707
!DebugView class methodsFor:'misc'!
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   708
4121
Claus Gittinger <cg@exept.de>
parents: 4120
diff changeset
   709
interestingContextFrom:aContext
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   710
    "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
   711
     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
   712
     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
   713
     actually occured.
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   714
     Just for your convenience :-)"
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   715
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   716
    |someContexts con idx|
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   717
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   718
    someContexts := Array new:25.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   719
    con := aContext.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   720
    idx := 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   721
    [(idx <= someContexts size) and:[con notNil]] whileTrue:[        
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   722
        someContexts at:idx put:con.
2042
ccbf16071e41 code cleanup
Claus Gittinger <cg@exept.de>
parents: 2033
diff changeset
   723
        con := con sender.
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   724
        idx := idx + 1.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   725
    ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   726
    idx := self interestingContextIndexIn:someContexts.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   727
    ^ someContexts at:idx.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   728
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   729
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   730
interestingContextIndexIn:aContextArray 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   731
    "return an interesting contexts offset, or nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   732
     This is the context initially shown in the walkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   733
     We move up the calling chain, skipping all intermediate Signal
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   734
     and Exception contexts, to present the context in which the error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   735
     actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   736
     Just for your convenience :-)"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   737
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   738
    |con found offset sel prev ex rcvr nMax idx|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   739
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
   740
"/ Transcript showCR:aContextArray.
7648
acfbc051149f *** empty log message ***
ca
parents: 7647
diff changeset
   741
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   742
    nMax := aContextArray size.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   743
    nMax <= 1 ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   744
    con := aContextArray at:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   745
    con isBlockContext ifTrue:[^ 1].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   746
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   747
    "/ somewhere, at the bottom, there must be a raise ...
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   748
    "/ find the exception
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
    1 to:5 do:[:i |
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   751
        con := aContextArray at:i ifAbsent:nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   752
        con notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   753
            sel := con selector.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   754
            (sel startsWith:'raise') ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   755
                rcvr := con receiver.
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   756
                (rcvr isLazyValue not and:[rcvr isException]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   757
                    ex := rcvr.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   758
                    offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   759
                    found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   760
                ] ifFalse:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   761
                    (rcvr isLazyValue not and:[rcvr isExceptionCreator]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   762
                        offset := i.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   763
                        found := con
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   764
                    ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   765
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   766
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   767
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   768
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   769
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   770
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   771
     if this is a noHandler exception, skip forward
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   772
     to the erronous context
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
    ex notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   775
        ex signal == Signal noHandlerSignal ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   776
            found := ex suspendedContext
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
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   779
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   780
    found isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   781
        "/ this is a kludge, but convenient.
6579
d20144004dd5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6487
diff changeset
   782
        "/ show the place where the error (divisionByZero...) happend,
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   783
        "/ not where the signal was raised.
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   784
        con := (aContextArray at:1).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
   785
        sel := con methodHome selector.
3447
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
        "/ typically a DivisionByZero - show caller of division
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   788
        (sel == #//      
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   789
        or:[sel == #/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   790
        or:[sel == #\\]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   791
            ^ 2
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
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   794
        "/ 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
   795
        (sel == #doesNotUnderstand:) ifTrue:[
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   796
            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   797
                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   798
                sel == #doesNotUnderstand: ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   799
                    ^ 4
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   800
                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   801
            ].
3447
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
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   810
"/        "/ show the place of the halt; not where the HaltSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   811
"/        ((sel == #halt) or:[sel == #halt:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   812
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   813
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   814
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   815
"/        "/ show the place of the shouldImplement; not where the Signal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   816
"/        (sel == #shouldImplement) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   817
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   818
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   819
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   820
"/        "/ show the place of error-call; not where the ErrorSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   821
"/        ((sel == #error:mayProceed:)
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   822
"/        or:[ sel == #signalFailure:resumable:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   823
"/            nMax > 2 ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   824
"/                sel := (aContextArray at:2) selector.
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   825
"/                sel == #mustBeBoolean ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   826
"/                    ^ 3
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   827
"/                ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   828
"/            ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   829
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   830
"/        ].
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   831
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   832
        "/ 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
   833
        (sel == #signalInterrupt:) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   834
            ^ 2
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   835
        ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   836
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   837
"/        "/ show the place of error-call; not where the ErrorSignal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   838
"/        ((sel == #error) or:[sel == #error:]) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   839
"/            con method mclass == Object ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   840
"/                ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   841
"/            ]
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   842
"/        ].
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   843
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   844
"/        "/ show the place of the send; not where the Signal was raised...
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   845
"/        (sel == #subclassResponsibility) ifTrue:[
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   846
"/            ^ 2
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   847
"/        ].
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   848
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   849
        "/ 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
   850
        ( #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   851
            #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   852
            #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   853
            #elementBoundsError:
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
   854
            "/ #subclassResponsibility
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   855
        ) includes:sel) ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   856
            idx := 2.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   857
            [ idx <= 3 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   858
                and:[ 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   859
                    sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   860
                    #(#notIndexed 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   861
                      #indexNotIntegerOrOutOfBounds: 
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   862
                      #subscriptBoundsError:
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   863
                      #elementBoundsError: ) includes:sel
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   864
                ]
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   865
            ] whileTrue:[ idx := idx + 1 ].
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   866
            sel := (aContextArray at:idx) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   867
            (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
   868
            ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   869
                sel := (aContextArray at:idx+1) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   870
                (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
   871
                ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   872
                    sel := (aContextArray at:idx+2) selector.
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   873
                    (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
   874
                    ifTrue:[
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   875
                        ^ idx+3
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   876
                    ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   877
                    ^ idx+2
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   878
                ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   879
                ^ idx+1
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   880
            ].
5117
038af0448624 interrestingContextFrom - duplicated code removed
Claus Gittinger <cg@exept.de>
parents: 5114
diff changeset
   881
            ^ idx
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   882
        ].
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   883
        offset := 1.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   884
    ].
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   885
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   886
    "/ the above is all too hard-coded;
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   887
    "/ ask the method, if it thinks it should be skipped in the walkback.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   888
    "/ as more methods get flagged, remove code from above.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   889
    con := aContextArray at:offset ifAbsent:nil.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   890
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   891
    [ 
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   892
      con notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   893
      and:[ con methodHome notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   894
      and:[ con methodHome method notNil
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   895
      and:[ con methodHome method shouldBeSkippedInDebuggersWalkBack ]]]
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   896
    ] whileTrue:[
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   897
"/ Transcript showCR:con methodHome method.
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   898
        offset := offset + 1.
8143
539df8f4f32e interresting context search generalized
Claus Gittinger <cg@exept.de>
parents: 8142
diff changeset
   899
        con := aContextArray at:offset ifAbsent:nil.
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
   900
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   901
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
     got it; move up, skipping all intermediate Signal and
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   904
     Exception contexts
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
    prev := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   907
    rcvr := con receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   908
    [   
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
   909
        rcvr isLazyValue not and:[(rcvr isExceptionHandler) or:[(rcvr isException)]]
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   910
    ] whileTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   911
        prev := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   912
        nMax > offset ifFalse:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   913
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   914
        offset := offset + 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   915
        con := aContextArray at:offset.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   916
        rcvr := con receiver.
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
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   919
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   920
     now, we are one above the raising context
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
     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
   925
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   926
    ( #( halt halt: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   927
         error error: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   928
         doesNotUnderstand: 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   929
         subclassResponsibility 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   930
         primitiveFailed) includes:con selector) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   931
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   932
        con selector == #doesNotUnderstand: ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   933
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   934
             one more up, to get to the originating context
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   935
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   936
            con := aContextArray at:(offset + 1).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   937
            con isNil ifTrue:[^ offset].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   938
            offset := offset + 1.
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
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   944
        "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   945
         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
   946
        "
8154
d755b646fc9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8152
diff changeset
   947
        (prev notNil and:[prev receiver == BreakPointInterrupt]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   948
            offset := offset + 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   949
        ].
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
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   952
    ^ offset
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   953
7713
11282af806b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7648
diff changeset
   954
    "Created: / 17-11-2001 / 20:37:49 / cg"
7862
8aaae35e340f interesting context
Claus Gittinger <cg@exept.de>
parents: 7844
diff changeset
   955
    "Modified: / 15-10-2007 / 16:50:27 / cg"
913
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   956
! !
6460993f73a3 made interestingContextFrom: public - its useful in
Claus Gittinger <cg@exept.de>
parents: 875
diff changeset
   957
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   958
!DebugView methodsFor:'basic'!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   959
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   960
enableDisableActions
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   961
    |m|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   962
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   963
    m := contextView middleButtonMenu.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   964
    m notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   965
        self updateMenuItems.
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
        (inspecting or:[AbortOperationRequest isHandled]) ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   968
            abortButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   969
            m enable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   970
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   971
            abortButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   972
            m disable:#doAbort.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   973
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   974
        exclusive ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   975
            terminateButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   976
            m disable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   977
        ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   978
            terminateButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   979
            m enable:#doTerminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   980
        ]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   981
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   982
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   983
    mayProceed == false ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   984
        continueButton disable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   985
        m notNil ifTrue:[m disable:#doContinue].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   986
    ] ifFalse:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   987
        continueButton enable.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   988
        m notNil ifTrue:[m enable:#doContinue]
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   989
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   990
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   991
    "Created: / 16.11.2001 / 17:40:51 / cg"
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   992
!
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
   993
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
   994
enter:aContext select:initialSelectionOrNil
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   995
    "enter the debugger - get and display the context, then start an
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   996
     exclusive event loop on top of eveything else"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
   997
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   998
    <context: #return>
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
   999
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1000
    |con m enteredByInterrupt sel iAmNew foundNoByteCodeContext foundExitContext c|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1001
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1002
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1003
        '==> enter: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1004
        ') select: ' print. initialSelectionOrNil printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  1005
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1006
    thisContext isRecursive ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1007
        "/ care for the special case, were the Debugger was autoloaded.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1008
        "/ in this case, thisContext IS recursive, but thats no error
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1009
        "/ condition.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1010
        foundNoByteCodeContext := false.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1011
        foundExitContext := false.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1012
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1013
        c := thisContext findNextContextWithSelector:#enter:withMessage:mayProceed: or:#noByteCode or:#exit_unwindThenDo:.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1014
        [
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1015
         foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1016
         and:[ foundExitContext not
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1017
         and:[c notNil 
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1018
         and:[c selector ~~ #enter:withMessage:mayProceed:
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1019
        ]]]]
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1020
        whileTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1021
            c selector == #exit_unwindThenDo: ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1022
                foundExitContext := true
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1023
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1024
            c selector == #noByteCode ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1025
                foundNoByteCodeContext := true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1026
            ].
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1027
            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
  1028
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1029
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1030
        (foundNoByteCodeContext not
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1031
        and:[ foundExitContext not]) ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1032
            ('DebugView [warning]: reentered') errorPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1033
        
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1034
            ^ MiniDebugger 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1035
                enter:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1036
                withMessage:'DebugView [error]: recursive error (in debugger)'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1037
                mayProceed:mayProceed.
6730
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1038
        ].
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1039
        foundExitContext ifTrue:[
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1040
            'DebugView [error]: recursive error (in debugger) ignored' printCR.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1041
            ^ self.
9fcc0227b091 error during unwind
Claus Gittinger <cg@exept.de>
parents: 6647
diff changeset
  1042
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1043
    ].
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1044
2591
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1045
"/'entering: ' print. aContext printCR.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1046
"/'initial: ' print. initialSelectionOrNil printCR.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1047
    iAmNew := drawableId isNil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1048
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1049
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1050
3580
61ea1626f2ab lineNumbers (kludge)
Claus Gittinger <cg@exept.de>
parents: 3570
diff changeset
  1051
    thisContext sender fixAllLineNumbers. "/ _CONTEXTLINENOS(s)
1265
3db375412f5d avoid caching a debugger which got destroyed
Claus Gittinger <cg@exept.de>
parents: 1263
diff changeset
  1052
    busy := cachable := true.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1053
    inspecting := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1054
    inspectedProcess := Processor activeProcess.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1055
    stepping := false.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1056
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1057
    stepHow := nil.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1058
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1059
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1060
    "/ if debugger is entered while a box has grabbed the
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1061
    "/ 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
  1062
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1063
    "/ On a multiUser system, ungrab all of them ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1064
    "/ 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
  1065
    "/    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
  1066
    "/    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
  1067
    Screen allScreens do:[:aScreen |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1068
        aScreen ungrabPointer.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1069
        aScreen ungrabKeyboard.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1070
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1071
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1072
    ("inspectedProcess suspendedContext isNil 
1179
e927f0c09298 Move #isSystemProcess from ProcessorScheduler to Process.
Stefan Vogel <sv@exept.de>
parents: 1148
diff changeset
  1073
    or:["inspectedProcess isSystemProcess"]") ifTrue:[
1004
cb182425a977 oops - dont disable terminateButton
Claus Gittinger <cg@exept.de>
parents: 998
diff changeset
  1074
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1075
        terminateButton disable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1076
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1077
        terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1078
        abortButton enable.
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1079
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1080
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1081
    iAmNew ifFalse:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1082
        "/ not the first time - disable buttons & menus
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1083
        "/ from the previous life
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1084
        self turnOffAllButtons.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1085
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1086
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1087
        m notNil ifTrue:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1088
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
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
        verboseBacktrace 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1091
            ifTrue:[self showVerboseWalkback]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1092
            ifFalse:[self showDenseWalkback].
132
claus
parents: 127
diff changeset
  1093
    ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1094
    self iconLabel:'Debugger'.
132
claus
parents: 127
diff changeset
  1095
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1096
    windowGroup isNil ifTrue:[
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1097
        self windowGroup: WindowGroup new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1098
        windowGroup addTopView:self.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1099
    ].
132
claus
parents: 127
diff changeset
  1100
    exclusive ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1101
        "/ create a (modal) windowGroup for myself
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1102
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1103
        windowGroup setModal:true.
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1104
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1105
        "/ create a windowGroup with a synchronous sensor for me
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1106
3769
3c6e68ee0593 dont access the windowGroups sensor directly
penk
parents: 3723
diff changeset
  1107
        windowGroup beSynchronous.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1108
    ].
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1109
    windowGroup setProcess:Processor activeProcess.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1110
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1111
     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
  1112
    "
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  1113
    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
  1114
"/'after setContext; first is ' print.
613b7c72371c fixed initial context selection, when entering via halt.
Claus Gittinger <cg@exept.de>
parents: 2589
diff changeset
  1115
"/(contextArray at:1 ifAbsent:nil) printCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1116
    self setInitialSelectionOnEntry:initialSelectionOrNil context:aContext.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1117
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1118
    m := contextView middleButtonMenu.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1119
    m notNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1120
        self updateMenuItems.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1121
5821
a5ef70570c6c Check for AbortOperationRequest in suspendedContext.
Stefan Vogel <sv@exept.de>
parents: 5798
diff changeset
  1122
        (inspecting or:[AbortOperationRequest isHandledIn:aContext]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1123
            abortButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1124
            m enable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1125
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1126
            abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1127
            m disable:#doAbort.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1128
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1129
        exclusive ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1130
            terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1131
            m disable:#doTerminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1132
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1133
            terminateButton enable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1134
            m enable:#doTerminate.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1135
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1136
        iAmNew ifFalse:[
5195
5a2d612e1adb oops - skip was always disabled
Claus Gittinger <cg@exept.de>
parents: 5170
diff changeset
  1137
            m disableAll:#(showMore "skip skipForReturn" inspectContext).
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1138
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1139
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1140
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1141
    mayProceed == false ifTrue:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1142
        continueButton disable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1143
        m notNil ifTrue:[m disable:#doContinue].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1144
    ] ifFalse:[
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1145
        continueButton enable.
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1146
        m notNil ifTrue:[m enable:#doContinue]
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1147
    ].
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  1148
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1149
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1150
     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
  1151
     Otherwise, its probably better to do a map, which shows the
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1152
     view at the previous position, without a need for the user to set the
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1153
     position again
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1154
    "
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1155
    iAmNew ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1156
        self remap.
2360
cef61dce4358 avoid empty debugger if some subcomponent forces creation
Claus Gittinger <cg@exept.de>
parents: 2358
diff changeset
  1157
    ] ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1158
        self realize.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1159
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1160
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1161
    exclusive ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1162
        self showError:'
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1163
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
  1164
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1165
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
  1166
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
  1167
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
  1168
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1169
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
  1170
    ].
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1171
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1172
    self autoRaiseView ifTrue:[
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1173
        "/ self raise.
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1174
        self raiseDeiconified.
7971
c769005fe651 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7912
diff changeset
  1175
        self topView 
c769005fe651 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7912
diff changeset
  1176
            activate; setForegroundWindow; activate.
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1177
    ].
1486
6ae442626f20 wait until visible before starting to draw
Claus Gittinger <cg@exept.de>
parents: 1484
diff changeset
  1178
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1179
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1180
    exitAction := nil.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1181
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1182
    "/ 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
  1183
    "/ 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
  1184
    "/ closedown of the debugger.
3701
ef73aac8e8d5 Use #ifCurtailed: instead of #valueOnUnwindDo:
Stefan Vogel <sv@exept.de>
parents: 3694
diff changeset
  1185
    [self controlLoop] ifCurtailed:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1186
        windowGroup notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1187
            windowGroup setProcess:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1188
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1189
        self destroy
132
claus
parents: 127
diff changeset
  1190
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1191
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1192
    "/ release all context stuff.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1193
    "/ 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
  1194
    "/ 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
  1195
    contextView contents:nil.
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1196
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1197
    codeView acceptAction:nil.
942
25d4f244abbe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 941
diff changeset
  1198
    codeView doItAction:nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1199
4892
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1200
    ObjectMemory stepInterruptHandler == self ifTrue:[
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1201
        ObjectMemory stepInterruptHandler:nil.
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1202
    ].
f7b6afd8cec9 release StepInterruptHandler
penk
parents: 4871
diff changeset
  1203
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1204
    "/ not stepping - close window
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1205
    (exitAction ~~ #step) ifTrue:[
3165
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1206
        lastSelectionInReceiverInspector := receiverInspector selectedKeyName.
03d3c485e67d remember selected entry in inspectors;
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1207
        lastSelectionInContextInspector := contextInspector selectedKeyName.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1208
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1209
        contextInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1210
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1211
        self unmap.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1212
        device flush.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1213
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1214
        (exitAction == #abort) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1215
            self exit_abort.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1216
        ].
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1217
        (exitAction == #abortAll) ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1218
            self exit_abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1219
        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1220
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1221
        (exitAction == #return) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1222
            self exit_return.
1399
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1225
        (exitAction == #restart) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1226
            self exit_restart.
1399
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1229
        (exitAction == #quickTerminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1230
            self exit_quickTerminate.
1399
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1233
        (exitAction == #terminate) ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1234
            self exit_terminate.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1235
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1236
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1237
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1238
    "/ stepping - window stays open
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1239
940
b27a64095304 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 939
diff changeset
  1240
    selectedContext := actualContext := firstContext := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1241
2472
03b50188ac9b checkin from browser
ca
parents: 2470
diff changeset
  1242
    "/ restore the previous pointer grab
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1243
    grabber notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1244
        device grabPointerInView:grabber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1245
        grabber := nil.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1246
    ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1247
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1248
    (exitAction == #step) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1249
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1250
         schedule another stepInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1251
         - must enter myself into the collection of open debuggers,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1252
           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
  1253
           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
  1254
           come up (instead of a new one)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1255
         - must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1256
           look for pending interrupts
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
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1260
        "/ also must care for stepping into a return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1261
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1262
        steppedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1263
            Processor activeProcess forceInterruptOnReturnOf:steppedContext.
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1266
        OpenDebuggers isNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1267
            OpenDebuggers := WeakIdentitySet new.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1268
        ].
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1269
        OpenDebuggers add:self.
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1270
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1271
        self label:'single stepping - please wait ...'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1272
        stepping := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1273
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1274
        ObjectMemory stepInterruptHandler:self.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1275
        Processor activeProcess stepInterruptHandler:self.
2963
c2df17414c2e next version
penk
parents: 2914
diff changeset
  1276
        ObjectMemory flushCaches.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1277
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1278
        Context singleStepInterruptRequest isHandled ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1279
            "bigStep" steppedContextLineno notNil ifTrue:[   
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1280
                Context singleStepInterruptRequest raiseWith:#next
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1281
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1282
                Context singleStepInterruptRequest raiseWith:#step
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1283
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1284
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1285
            "/ see if we came here through an interrupt-action
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1286
            "/ (i.e. aProcess interruptWith:...)
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1287
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1288
            enteredByInterrupt := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1289
            con := thisContext findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1290
            [enteredByInterrupt not
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1291
             and:[con notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1292
             and:[con ~~ aContext]]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1293
                ((sel := con selector) == #timerInterrupt
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1294
                or:[sel == #ioInterrupt]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1295
                    enteredByInterrupt := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1296
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1297
                    con := con findNextContextWithSelector:#timerInterrupt or:#ioInterrupt or:nil.
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1301
            ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1302
1456
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1303
            DebuggingDebugger == true ifTrue:[
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1304
                enteredByInterrupt printCR.
9bff6683235d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1452
diff changeset
  1305
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1306
            enteredByInterrupt ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1307
                "/ dont want to step through all intermediate
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1308
                "/ (scheduler-) contexts; place a return-trap on the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1309
                "/ one right below the interesting one
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1310
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1311
"/                'special unwind return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1312
                con unwindThenDo:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1313
                                  Processor activeProcess stepInterruptHandler:self.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1314
                                  ObjectMemory stepInterruptHandler:self.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1315
                                  InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1316
                                  StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1317
                                  InterruptPending := 1].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1318
            ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1319
"/                'normal step return' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1320
                skipLineNr ~~ #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1321
                    StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1322
                    InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1323
                ] ifFalse:[
778
e0f6238c9dd5 better stepping of an interrupted context.
Claus Gittinger <cg@exept.de>
parents: 775
diff changeset
  1324
"/                    'step for return' printCR.
1399
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
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1327
            InStepInterrupt := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1328
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1329
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1330
        OpenDebuggers notNil ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  1331
            OpenDebuggers remove:self ifAbsent:[].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1332
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1333
        self cacheMyself.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1334
    ]
210
947f9a23b06a better error handling in modal debugger - use new SynchronousWindowSensor
Claus Gittinger <cg@exept.de>
parents: 193
diff changeset
  1335
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1336
    "Modified: / 17-04-1997 / 13:01:32 / stefan"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1337
    "Created: / 30-10-1997 / 21:08:18 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  1338
    "Modified: / 13-10-1998 / 19:56:59 / ps"
7830
561dfa2c8bf6 changed #enter:select:
Claus Gittinger <cg@exept.de>
parents: 7823
diff changeset
  1339
    "Modified: / 28-07-2007 / 12:12:03 / cg"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1342
exit_abort
5455
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1343
    "/ 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
  1344
    "/ 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
  1345
    "/ 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
  1346
    "/ 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
  1347
    "/ 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
  1348
    "/ done in the #enter:select method.    
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1349
    "/ You are not expected to understand this.
05d522683185 fix to allow halt in an exception handler to work
penk
parents: 5454
diff changeset
  1350
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1351
    self exit_unwindThenDo:[ AbortOperationRequest raise ]
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
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1354
exit_abortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1355
    "/ 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
  1356
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1357
    "/ 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
  1358
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1359
    "/ 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
  1360
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1361
    "/ You are not expected to understand this.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1362
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1363
    self exit_unwindThenDo:[ AbortAllOperationRequest raise ]
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1366
exit_quickTerminate
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1367
    self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1368
    Processor activeProcess terminateNoSignal
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1369
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1370
    "Created: / 16.11.2001 / 17:23:51 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1371
    "Modified: / 17.11.2001 / 23:20:07 / cg"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1374
exit_restart
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1375
    |con|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1376
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1377
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1378
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1379
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1380
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1381
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1382
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1383
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1384
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1385
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1386
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1387
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1388
            con unwindAndRestart.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1389
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1390
        'DebugView [warning]: cannot restart selected context' errorPrintCR
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1393
    "Created: / 16.11.2001 / 17:23:17 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1394
    "Modified: / 17.11.2001 / 23:37:09 / cg"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1397
exit_return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1398
    |con retVal|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1399
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1400
    selectedContext notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1401
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1402
         if there is a selection in the codeView,
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1403
         evaluate it and use the result as return value
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1404
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1405
"/ 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
  1406
"/ and that is syntactically incorrect ...
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1407
"/ ... leading to a popup warning from the codeView
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1408
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1409
"/                codeView hasSelection ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1410
"/                    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1411
"/                        'DebugView [warning]: error - returning nil' errorPrintCR.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1412
"/                        retVal := nil.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1413
"/                        ex return
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1414
"/                    ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1415
"/                        |s|
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1416
"/
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1417
"/                        s := codeView selection asString.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1418
"/                        retVal := codeView doItAction value:s.
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1422
        con := selectedContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1423
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1424
        "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1425
         have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1426
        "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1427
        Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1428
            'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1429
            ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1430
            ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1431
        ] do:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1432
            con unwind:retVal.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1433
        ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1434
        'DebugView [warning]: cannot return from selected context' errorPrintCR
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1437
    "Created: / 16.11.2001 / 17:22:24 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1438
    "Modified: / 17.11.2001 / 23:20:21 / cg"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1441
exit_terminate
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
    "
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1444
     have to catch errors occuring in unwind-blocks
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1445
    "
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  1446
    Error handle:[:ex |
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1447
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  1448
        ex description infoPrintCR.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1449
        ex proceed
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1450
    ] do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1451
        self cacheMyself.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1452
        Processor activeProcess terminate.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1453
    ].
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1454
    'DebugView [warning]: cannot terminate process' errorPrintCR
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1455
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1456
    "Created: / 16.11.2001 / 17:24:20 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1457
    "Modified: / 17.11.2001 / 23:20:27 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1458
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1459
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1460
exit_unwindThenDo:aBlock
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1461
    |con|
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1462
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1463
    "/ 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
  1464
    "/ that one would run on top of this context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1465
    "/ 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
  1466
    "/ would be interpreted as a recursive invocation (in #enter:select).
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1467
    "/ 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
  1468
    "/ done in the #enter:select method.    
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1469
    "/ You are not expected to understand this.
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
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1472
     have to catch errors occuring in unwind-blocks
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1473
    "
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1474
    self cacheMyself.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1475
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1476
    Error handle:[:ex |
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1477
        'DebugView [info]: ignored error while unwinding: ' infoPrint.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1478
        ex description infoPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1479
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1480
        ex proceed
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1481
    ] do:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1482
        "/ find the enter:select context.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1483
        con := thisContext sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1484
        [   
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1485
            (con selector == #enter:select:)
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1486
            and:[con receiver == self]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1487
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1488
        whileFalse:[ con := con sender ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1489
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1490
        "/ 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
  1491
        con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1492
            con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1493
            con sender receiver == self class ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1494
                con := con sender.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1495
                con isBlockContext ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1496
                    con := con methodHome.
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
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1501
        con unwindThenDo:aBlock.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1502
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1503
    'DebugView [warning]: abort failed' errorPrintCR
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1504
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1505
    "Created: / 16.11.2001 / 17:20:45 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1506
    "Modified: / 18.11.2001 / 00:58:14 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1507
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  1508
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1509
initialSelectionOnEntry:initialSelectionOrNil context:aContext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1510
    |selection con1 con2 h|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1511
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1512
    initialSelectionOrNil notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1513
        ^ initialSelectionOrNil
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
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1517
     and find the one context to show initially
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1518
     - 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
  1519
     - 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
  1520
       (for ifs and whiles) or the sender (for regular sends).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1521
     - 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
  1522
       in the context where the raise actually occured.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1523
    "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1524
    con1 := (contextArray at:1 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1525
    con2 := (contextArray at:2 ifAbsent:nil).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1526
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1527
    exitAction == #step ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1528
        selection := 1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1529
        steppedContext notNil ifTrue:[
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
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1532
             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
  1533
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1534
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1535
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1536
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1537
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1538
                    selection := 2
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
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1542
             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
  1543
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1544
            ((h := con1 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1545
             and:[h == steppedContext]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1546
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1547
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1548
                (con2 notNil
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1549
                and:[(h := con2 home) notNil 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1550
                and:[h == steppedContext]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1551
                    selection := 2
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
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1554
            h := nil.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1555
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1556
    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1557
        steppedContext isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1558
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1559
             preselect a more interesting context, (where halt/raise was ...)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1560
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1561
            "/ selection := self class interestingContextIndexFrom:aContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1562
            selection := self class interestingContextIndexIn:contextArray.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1563
            selection := selection min:(contextArray size).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1564
        ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1565
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1566
             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
  1567
            "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1568
            con1 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1569
                selection := 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1570
            ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1571
                con2 == steppedContext ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1572
                    selection := 2.
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
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1577
    ^ selection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1578
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1579
    "Created: / 17.11.2001 / 20:26:26 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1580
    "Modified: / 17.11.2001 / 22:51:46 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1581
!
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1582
5110
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1583
isInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1584
    ^ inspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1585
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1586
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1587
isNotInspecting
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1588
    ^ inspecting not
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1589
!
Claus Gittinger <cg@exept.de>
parents: 5088
diff changeset
  1590
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1591
openOn:aProcess
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1592
    "enter the debugger on a process - 
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1593
     in this case, we are just inspecting the context chain of the process,
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1594
     not running on top of the debugged process, but as a separate
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1595
     one. (think of it as an inspector showing more detail, and offering
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1596
     some more control operations)"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1597
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1598
    |bpanel dummy w|
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1599
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1600
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  1601
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1602
    busy := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1603
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1604
    stepHow := nil.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1605
    inspecting := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1606
    inspectedProcess := aProcess.
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1607
    nChainShown := InitialNChainShown.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1608
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1609
    bpanel := abortButton superView.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1610
    bpanel ignoreInvisibleComponents:true.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1611
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1612
    "/ get the max size & freeze button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1613
    continueButton label:(resources string:'Continue').
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1614
    w := continueButton preferredExtent x.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1615
    continueButton label:(resources string:'Stop').
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1616
    w := w max:(continueButton preferredExtent x).
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1617
    continueButton preferredExtent:(w @ continueButton preferredExtent y).
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1618
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1619
    aProcess state == #run ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1620
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1621
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1622
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1623
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1624
        continueButton action:[self doStop].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1625
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1626
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1627
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1628
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1629
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1630
        continueButton action:[self doContinue].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1631
    ].
5451
971dc52a38de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5450
diff changeset
  1632
    continueButton preferredExtent:(w @ continueButton preferredExtent y).
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1633
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1634
    returnButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1635
    restartButton disable.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  1636
92
claus
parents: 90
diff changeset
  1637
    dummy := View extent:(10 @ 5) in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1638
    dummy borderWidth:0; level:0.
61
cb5e3560bd82 *** empty log message ***
claus
parents: 58
diff changeset
  1639
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1640
"/    stepButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1641
"/    sendButton destroy.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1642
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1643
    updateButton := Button
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1644
                        label:(resources string:'Update')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1645
                        action:[self updateContext]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1646
                        in:bpanel.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1647
    monitorToggle := Toggle in:bpanel.
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1648
    monitorToggle label:(resources string:'Monitor').
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1649
    monitorToggle pressAction:[self autoUpdateOn].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1650
    monitorToggle releaseAction:[self autoUpdateOff].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1651
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1652
    "can only look into process - context chain is not active"
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1653
    canContinue := true.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1654
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1655
    terminateButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1656
    abortButton enable.
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1657
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1658
    sendButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1659
    stepButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1660
    nextButton disable; beInvisible.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1661
    nextOverButton notNil ifTrue:[nextOverButton disable; beInvisible].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  1662
    nextOutButton notNil ifTrue:[nextOutButton disable; beInvisible].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1663
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1664
    aProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1665
        terminateButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1666
        abortButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1667
        continueButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1668
        returnButton disable.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1669
        restartButton disable.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1670
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1671
        (aProcess suspendedContext isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1672
        or:[aProcess isSystemProcess]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1673
            terminateButton disable.
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
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1676
        self setContextSkippingInterruptContexts:aProcess suspendedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1677
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1678
        catchBlock := [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1679
            catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1680
            contextArray := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1681
            selectedContext := actualContext := firstContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1682
            steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1683
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1684
            (exitAction == #terminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1685
                aProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1686
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1687
            (exitAction == #quickTerminate) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1688
                aProcess terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1689
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1690
            super destroy
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1691
        ].
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1692
    ].
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  1693
    self open
316
7d529dfe8a99 disable abort & terminate for system processes
Claus Gittinger <cg@exept.de>
parents: 303
diff changeset
  1694
1092
059c29fac604 made the number of frames shown initially a
Claus Gittinger <cg@exept.de>
parents: 1091
diff changeset
  1695
    "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
  1696
    "Modified: 17.4.1997 / 13:01:57 / stefan"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1699
setInitialSelectionOnEntry:initialSelectionOrNil context:aContext
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1700
    |selection|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1701
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1702
    selection := self initialSelectionOnEntry:initialSelectionOrNil context:aContext.
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1703
    selection notNil ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1704
        self showSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1705
        contextView setSelection:selection.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1706
        selection > 1 ifTrue:[
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1707
            contextView scrollToLine:(selection - 1)
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1711
    "Created: / 16.11.2001 / 17:28:07 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1712
    "Modified: / 17.11.2001 / 20:27:21 / cg"
3434
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
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1715
turnOffAllButtons
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1716
    terminateButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1717
    continueButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1718
    returnButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1719
    restartButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1720
    abortButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1721
    nextButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1722
    stepButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1723
    sendButton turnOffWithoutRedraw.
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1724
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1725
    "Created: / 16.11.2001 / 17:36:18 / cg"
266
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1728
!DebugView methodsFor:'help'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1729
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1730
flyByHelpTextFor:aComponent
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1731
    |s|
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1732
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1733
    aComponent == abortButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1734
        s := 'Abort (Unwind to EventLoop)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1735
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1736
    aComponent == terminateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1737
        s := 'Terminate Process (Close View)'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1738
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1739
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1740
        continueButton label = (resources string:'Stop') ifTrue:[
3510
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1741
            s := 'Stop'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1742
        ] ifFalse:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1743
            s := 'Continue Execution'
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
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1746
    aComponent == stepButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1747
        s := 'Step to Next Send'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1748
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1749
    aComponent == nextButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1750
        s := 'Step to Next Line'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1751
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1752
    aComponent == nextOverButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1753
        s := 'Step Over'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1754
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1755
    aComponent == nextOutButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1756
        s := 'Step Out'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1757
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1758
    aComponent == sendButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1759
        s := 'Send Next Message'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1760
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1761
    aComponent == returnButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1762
        s := 'Return from selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1763
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1764
    aComponent == restartButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1765
        s := 'Restart selected Method'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1766
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1767
    aComponent == monitorToggle ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1768
        s := 'Toggle Monitoring'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1769
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1770
    aComponent == updateButton ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1771
        s := 'Update'
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1772
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1773
    s notNil ifTrue:[
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1774
        ^ resources string:s
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1775
    ].
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1776
    ^ nil
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1777
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1778
    "Modified: 29.8.1995 / 23:38:54 / claus"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1779
    "Modified: 4.3.1997 / 01:54:03 / cg"
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1780
!
850a051a8235 flyBy help
Claus Gittinger <cg@exept.de>
parents: 3503
diff changeset
  1781
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1782
helpTextFor:aComponent
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1783
    |s|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1784
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1785
    aComponent == abortButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1786
        s := 'HELP_ABORT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1787
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1788
    aComponent == terminateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1789
        s := 'HELP_TERMINATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1790
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1791
    aComponent == continueButton ifTrue:[
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  1792
        continueButton label = (resources string:'Stop') ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1793
            s := 'HELP_STOP'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1794
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1795
            s := 'HELP_CONTINUE'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1796
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1797
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1798
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1799
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1800
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1801
    aComponent == nextButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1802
        s := 'HELP_NEXT'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1803
    ].
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1804
    aComponent == nextOverButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1805
        s := 'HELP_NEXTOVER'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1806
    ].
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1807
    aComponent == nextOutButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1808
        s := 'HELP_NEXTOUT'
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1809
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1810
    aComponent == stepButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1811
        s := 'HELP_STEP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1812
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1813
    aComponent == sendButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1814
        s := 'HELP_SEND'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1815
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1816
    aComponent == returnButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1817
        s := 'HELP_RETURN'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1818
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1819
    aComponent == restartButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1820
        s := 'HELP_RESTART'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1821
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1822
    aComponent == contextView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1823
        s := 'HELP_WALKBACK'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1824
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1825
    aComponent == codeView ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1826
        s := 'HELP_CODEVIEW'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1827
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1828
    aComponent == monitorToggle ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1829
        s := 'HELP_MONITOR'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1830
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1831
    aComponent == updateButton ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1832
        s := 'HELP_UPDATE'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1833
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1834
"/    aComponent == stopButton ifTrue:[
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1835
"/        s := 'HELP_STOP'
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  1836
"/    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1837
    (aComponent isComponentOf:receiverInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1838
        s := 'HELP_REC_INSP'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1839
    ].
612
986e371232a2 isSubViewOf: -> isComponentOf:
Claus Gittinger <cg@exept.de>
parents: 583
diff changeset
  1840
    (aComponent isComponentOf:contextInspector) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1841
        s := 'HELP_CON_INSP'
266
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
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1844
    s notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  1845
        ^ resources string:s
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1846
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1847
    ^ nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1848
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1849
    "Modified: 29.8.1995 / 23:38:54 / claus"
1065
feacf3883438 active help messages
Claus Gittinger <cg@exept.de>
parents: 1064
diff changeset
  1850
    "Modified: 4.3.1997 / 01:54:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1851
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1852
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  1853
!DebugView methodsFor:'initialization & release'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1854
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1855
addToCurrentProject
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1856
    "ignored here"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1857
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1858
    ^ self
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1859
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1860
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1861
destroy
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1862
    "closing the debugger implies an abort or continue"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1863
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1864
    |m|
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1865
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  1866
    self checkIfCodeIsReallyModified ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1867
        (self confirm:('Code modified - exit anyway ?'))
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1868
        ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1869
            ^ self
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
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1872
2172
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1873
    self autoUpdateOff.
dc9b1ed43f64 turn off autoUpdate when destroyed
Claus Gittinger <cg@exept.de>
parents: 2150
diff changeset
  1874
2404
5d0d2c826eff checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2397
diff changeset
  1875
    (m := contextView middleButtonMenu) notNil ifTrue:[m hide].
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1876
    inspecting ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1877
        "I am running on top of a process, abort or continue it"
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1878
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1879
        windowGroup notNil ifTrue:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1880
            windowGroup setProcess:nil.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1881
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1882
        self uncacheMyself.
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
        "/
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1885
        "/ catch invalid return;
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1886
        "/ this happens, when my process has somehow died (quickterminate)
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1887
        "/ and I am a leftOver view, which gets terminated via the launchers
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1888
        "/ #destroy-window function.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1889
        "/
3124
540feceebffa invalidReturnSignal -> cannotReturnSignal
Claus Gittinger <cg@exept.de>
parents: 3121
diff changeset
  1890
        Context cannotReturnSignal handle:[:ex |
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1891
            'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1892
            self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1893
            Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1894
            ex return.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1895
        ] do:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1896
            AbortOperationRequest isHandled ifTrue:[
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1897
                self doAbort.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1898
            ] ifFalse:[
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1899
                self doContinue
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
        ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1902
        "/ We don't reach this point normally
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1903
        'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1904
        Debugger newDebugger.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1905
        self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1906
    ].
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1907
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  1908
    Debugger newDebugger.
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1909
    "/ since I am going to be destroyed, remove me from the cache
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1910
    self uncacheMyself.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1911
    super destroy.
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1912
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1913
    "Modified: / 10.7.1997 / 17:15:41 / stefan"
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  1914
    "Modified: / 16.11.2001 / 17:38:15 / cg"
2115
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1915
!
c134aa00bc7b category change
Claus Gittinger <cg@exept.de>
parents: 2060
diff changeset
  1916
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1917
initialize
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1918
    |menu menuPanel mH panel bpanel bH bpanel1 bH1 bpanel2 bH2 codePanel 
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1919
     newLayout v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1920
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1921
    super initialize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1922
2340
3258f3daf0e6 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2333
diff changeset
  1923
    font := font onDevice:device.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1924
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1925
    verboseBacktrace := UserPreferences current verboseBacktraceInDebugger.
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  1926
    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
  1927
                                  "/ the debugger
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  1928
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1929
    busy := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1930
    exclusive := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1931
    inspecting := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1932
    exitAction := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1933
    bigStep := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  1934
    stepHow := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1935
    canContinue := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  1936
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1937
    mH := 0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1938
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1939
    menuPanel := MenuPanel in:self.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  1940
    menuPanel receiver:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1941
    menuPanel verticalLayout:false.
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  1942
    menu := self class menuSpec decodeAsLiteralArray.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  1943
    menu findGuiResourcesIn:self.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  1944
    menuPanel menu:menu.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1945
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1946
    mH := menuPanel preferredExtent y.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1947
    menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1948
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1949
    newLayout := UserPreferences current useNewLayoutInDebugger.
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1950
    newLayout ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1951
        bpanel := HorizontalPanelView in:self.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  1952
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1953
        self initializeButtonsIn:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1954
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1955
        bH := bpanel preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1956
        bpanel origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1957
               extent:(1.0 @ bH).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1958
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1959
                            origin:(0.0 @ (mH + bH))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1960
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1961
                            in:self.
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
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1964
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1965
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1966
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1967
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1968
        v origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1969
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
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
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1972
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1973
8148
21180715dbe9 new layout
Claus Gittinger <cg@exept.de>
parents: 8143
diff changeset
  1974
    ] ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1975
        bpanel1 := HorizontalPanelView in:self.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1976
        self initializeButtons1In:bpanel1.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1977
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1978
        bH1 := bpanel1 preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1979
        bpanel1 origin:(0.0 @ mH)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1980
                extent:(1.0 @ bH1).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1981
        panel := VariableVerticalPanel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1982
                            origin:(0.0 @ (mH + bH1))
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1983
                            corner:(1.0 @ 1.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1984
                                in:self.
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
        v := self initializeContextListViewIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1987
        v origin:(0.0 @ 0.0) corner:(1.0 @ 0.25).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1988
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1989
        codePanel := View in:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1990
        bpanel2 := HorizontalPanelView in:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1991
        self initializeButtons2In:bpanel2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1992
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1993
        bH2 := bpanel2 preferredExtent y.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1994
        bpanel2 origin:(0.0 @ 0.0)
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1995
                extent:(1.0 @ bH2).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1996
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1997
        v := self initializeCodeViewIn:codePanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1998
        v origin:(0.0 @ bH2) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  1999
        codePanel origin:(0.0 @ 0.25) corner:(1.0 @ 0.75).
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
        v := self initializeInspectorViewsIn:panel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2002
        v origin:(0.0 @ 0.75) corner:(1.0 @ 1.0).
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2003
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2004
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2005
    DefaultDebuggerBackgroundColor notNil ifTrue:[
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2006
        self allViewBackground:DefaultDebuggerBackgroundColor.
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2007
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  2008
3387
4cbed052fbbe *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3350
diff changeset
  2009
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2010
    "
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2011
     Debugger newDebugger
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2012
    "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2013
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2014
    "Modified: / 17.11.2001 / 20:50:24 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2015
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2016
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2017
initializeAbortButtonIn:bpanel 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2018
    abortButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2019
                label:(resources string:'Abort')
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2020
                action:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2021
                    abortButton turnOffWithoutRedraw.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2022
                    self doAbort
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2023
                ]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2024
                in:bpanel.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2025
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2026
    "Created: / 17.11.2001 / 20:56:47 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2027
    "Modified: / 17.11.2001 / 20:57:17 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2028
!
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
initializeButtons1In:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2031
    |separator|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2032
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2033
    bpanel horizontalLayout:#leftMax.  "was: #left. "
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2034
    bpanel verticalLayout:#centerMax.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2035
    bpanel verticalSpace:ViewSpacing // 2.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2036
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2037
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2038
"/    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2039
"/    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2040
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2041
    self initializeContinueButtonIn:bpanel.
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2042
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2043
    separator := View extent:(10 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2044
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2045
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2046
    self initializeTerminateButtonIn:bpanel.
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
    separator := View extent:(10 @ 5) in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2049
    separator borderWidth:0; level:0.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2050
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2051
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2052
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2053
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2054
    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2055
    "Modified: / 17.11.2001 / 21:02:59 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2056
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2057
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2058
initializeButtons2In:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2059
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2060
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2061
    bpanel horizontalLayout:#leftMax.  "was: #left. "
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2062
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2063
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2064
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2065
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2066
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2067
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2068
"/ cg:
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2069
"/ 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
  2070
"/ 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
  2071
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2072
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2073
2305
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2074
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2075
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2076
"/        img := (resources at:'next')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2077
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2078
"/    nextButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2079
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2080
"/                        action:[stepButton turnOff. self doNext]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2081
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2082
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2083
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2084
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2085
"/        img := (resources at:'over')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2086
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2087
"/    nextOverButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2088
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2089
"/                        action:[stepButton turnOff. self doNextOver]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2090
"/                        in:bpanel.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2091
"/
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2092
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2093
"/    img isNil ifTrue:[
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2094
"/        img := (resources at:'out')
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2095
"/    ].
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2096
"/    nextOutButton := Button
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2097
"/                        label:img
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2098
"/                        action:[stepButton turnOff. self doNextOut]
4df4dcd30c13 disabled the stepIn / stepOut buttons - for now
Claus Gittinger <cg@exept.de>
parents: 2299
diff changeset
  2099
"/                        in:bpanel.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2100
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2101
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2102
1398
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2103
    separator := View extent:(30 @ 5) in:bpanel.
d3f02207f847 rearranged buttons (terminate was too exposed);
Claus Gittinger <cg@exept.de>
parents: 1394
diff changeset
  2104
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2105
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2106
    self initializeReturnButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2107
    self initializeRestartButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2108
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2109
    "Modified: / 17.11.2001 / 21:01:38 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2110
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2111
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2112
initializeButtonsIn:bpanel 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2113
    |separator|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2114
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2115
    bpanel horizontalLayout:#left.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2116
    bpanel verticalLayout:#centerMax.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2117
    bpanel verticalSpace:ViewSpacing // 2.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2118
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2119
    self initializeAbortButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2120
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2121
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2122
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2123
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2124
    self initializeContinueButtonIn:bpanel.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2125
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2126
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2127
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2128
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2129
    self initializeReturnButtonIn:bpanel.    
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2130
    self initializeRestartButtonIn:bpanel.    
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2131
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2132
    separator := View extent:(10 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2133
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2134
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2135
    self initializeNextButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2136
    self initializeStepButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2137
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2138
"/ cg:
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2139
"/ I disabled the stepIn / stepOut buttons - for now.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2140
"/ they do not work relyable with inlined blocks yet.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2141
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2142
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2143
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2144
"/    img := Image fromFile:'bitmaps/stepIn.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2145
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2146
"/        img := (resources at:'next')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2147
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2148
"/    nextButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2149
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2150
"/                        action:[stepButton turnOff. self doNext]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2151
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2152
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2153
"/    img := Image fromFile:'bitmaps/stepOver.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2154
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2155
"/        img := (resources at:'over')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2156
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2157
"/    nextOverButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2158
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2159
"/                        action:[stepButton turnOff. self doNextOver]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2160
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2161
"/
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2162
"/    img := Image fromFile:'bitmaps/stepOut.xpm'.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2163
"/    img isNil ifTrue:[
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2164
"/        img := (resources at:'out')
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2165
"/    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2166
"/    nextOutButton := Button
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2167
"/                        label:img
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2168
"/                        action:[stepButton turnOff. self doNextOut]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2169
"/                        in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2170
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2171
    self initializeSendButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2172
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2173
    separator := View extent:(30 @ 5) in:bpanel.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  2174
    separator borderWidth:0; level:0.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2175
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2176
    self initializeTerminateButtonIn:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2177
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2178
    separator := View extent:(30 @ 5) in:bpanel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2179
    separator borderWidth:0; level:0.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2180
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2181
    self initializeDefineButtonIn:bpanel.
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2182
    (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2183
        self initializeReportButtonIn:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2184
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2185
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2186
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2187
    "Created: / 17.11.2001 / 20:56:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2188
    "Modified: / 17.11.2001 / 21:03:18 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2189
!
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
initializeCodeViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2192
    |v|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2193
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2194
    v := HVScrollableView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2195
                for:CodeView 
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2196
                miniScrollerH:true
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2197
                miniScrollerV:false
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2198
                in:panel.
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 autoHideScrollBars:true.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2201
    codeView := v scrolledView.
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
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2204
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2205
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2206
initializeContextListViewIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2207
    |v|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2208
3034
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2209
    v := HVScrollableView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2210
                for:SelectionInListView 
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2211
                miniScrollerH:true
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2212
                miniScrollerV:false
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2213
                in:panel.
fad21a9a02bd context-list is horizontal scrollable
Claus Gittinger <cg@exept.de>
parents: 3033
diff changeset
  2214
    v autoHideHorizontalScrollBar:true.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2215
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2216
    contextView := v scrolledView.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2217
    contextView action:[:lineNr | self showSelection:lineNr].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2218
    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
  2219
    contextView selectConditionBlock:[:line | self checkSelectionChangeAllowed:line].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2220
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2221
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2222
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2223
    ^ v
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2224
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2225
5453
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2226
initializeContextViewsMiddleButtonMenu
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2227
    <resource: #programMenu >
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2228
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2229
    contextView middleButtonMenu:(self middleButtonMenu). 
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2230
!
4211f29ea931 contextViews menu
Claus Gittinger <cg@exept.de>
parents: 5451
diff changeset
  2231
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2232
initializeContinueButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2233
    continueButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2234
                label:(resources string:'Continue')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2235
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2236
                    continueButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2237
                    self doContinue
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2238
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2239
                in:bpanel.
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
    "Created: / 17.11.2001 / 20:57:34 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2242
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2243
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2244
initializeDefineButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2245
    defineButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2246
                label:(resources string:'Define')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2247
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2248
                    defineButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2249
                    self doDefine
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
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2252
    defineButton beInvisible
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2253
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2254
    "Created: / 17.11.2001 / 21:02:48 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2255
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2256
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2257
initializeInspectorViewsIn:panel
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2258
    |hpanel|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2259
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2260
    hpanel := VariableHorizontalPanel in:panel.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2261
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2262
    receiverInspector := InspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2263
                                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
  2264
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2265
    receiverInspector fieldListLabel:'Receiver'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2267
    contextInspector := ContextInspectorView
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2268
                                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
  2269
                                    in:hpanel.
4103
6c0eb2985cee label: -> fieldListLabel: in inspector
Claus Gittinger <cg@exept.de>
parents: 3998
diff changeset
  2270
    contextInspector fieldListLabel:'Context'.
646
04dafb2560bf added labels 'receiver' & 'context';
Claus Gittinger <cg@exept.de>
parents: 642
diff changeset
  2271
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  2272
    ^ hpanel
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2273
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2274
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2275
initializeNextButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2276
    nextButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2277
                label:(resources string:'Next')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2278
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2279
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2280
                    self doNext
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2281
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2282
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2283
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2284
    "Created: / 17.11.2001 / 20:59:38 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2285
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2286
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2287
initializeReportButtonIn:bpanel 
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2288
    reportButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2289
                label:(resources string:'Report by Mail')
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2290
                action:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2291
                    reportButton turnOffWithoutRedraw.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2292
                    self doOpenReportMailApp.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2293
                ]
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2294
                in:bpanel.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2295
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2296
    "Created: / 17.11.2001 / 21:02:20 / cg"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2297
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  2298
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2299
initializeRestartButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2300
    restartButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2301
                label:(resources string:'Restart')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2302
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2303
                    restartButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2304
                    self doRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2305
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2306
                in:bpanel.
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
    "Created: / 17.11.2001 / 20:58:52 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2309
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2310
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2311
initializeReturnButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2312
    returnButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2313
                label:(resources string:'Return')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2314
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2315
                    returnButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2316
                    self doReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2317
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2318
                in:bpanel.
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
    "Created: / 17.11.2001 / 20:58:22 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2321
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2322
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2323
initializeSendButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2324
    sendButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2325
                label:(resources string:'Send')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2326
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2327
                    sendButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2328
                    self doSend
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2329
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2330
                in:bpanel.
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
    "Created: / 17.11.2001 / 21:01:20 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2333
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2334
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2335
initializeStepButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2336
    stepButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2337
                label:(resources string:'Step')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2338
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2339
                    stepButton turnOff.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2340
                    self doStep
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2341
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2342
                in:bpanel.
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
    "Created: / 17.11.2001 / 21:00:13 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2345
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2346
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2347
initializeTerminateButtonIn:bpanel 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2348
    terminateButton := Button 
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  2349
                label:(resources string:'Terminate')
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2350
                action:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2351
                    terminateButton turnOffWithoutRedraw.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2352
                    self doTerminate
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2353
                ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2354
                in:bpanel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2355
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2356
    "Created: / 17.11.2001 / 21:02:20 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2357
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2358
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2359
postRealize
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2360
    super postRealize.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2361
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2362
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2363
        inspectedProcess notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2364
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2365
             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
  2366
             to run between mine and the debugged processes prio)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2367
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2368
            Processor activeProcess 
6464
ad9a50d6097e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6430
diff changeset
  2369
                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
  2370
        ]
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2371
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2372
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  2373
    self sensor addEventListener:self.
1249
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2374
9a0070d01218 #realize -> #postRealize
Claus Gittinger <cg@exept.de>
parents: 1244
diff changeset
  2375
    "Created: 24.7.1997 / 18:17:44 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2376
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2377
2150
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2378
reinitialize
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2379
    "/ 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
  2380
    "/ 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
  2381
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2382
    drawableId notNil ifTrue:[
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2383
        ^ self
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2384
    ].
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2385
    "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
  2386
    self recreate.
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2387
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2388
!
a3148483962e do not re-realize a debugView after a snapshot-restart
Claus Gittinger <cg@exept.de>
parents: 2115
diff changeset
  2389
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2390
setLabelFor:aMessage in:aProcess
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2391
    |l lines nm|
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2392
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2393
    lines := aMessage asStringCollection.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2394
    lines size > 1 ifTrue:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2395
        l := lines first
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2396
    ] ifFalse:[
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2397
        l := aMessage.
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2398
    ].
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2399
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2400
    l := l , ' ('.
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  2401
    Error handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2402
        l := l , '???'
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2403
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2404
        nm := aProcess name.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2405
        nm notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2406
            l := l , (nm contractTo:17) , ''.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2407
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2408
        l := l , '[' , aProcess id printString , ']'.
73
e332d9c71624 *** empty log message ***
claus
parents: 69
diff changeset
  2409
    ].
1030
1a1ee0356c1b catch errors while extracting processes name
ca
parents: 1019
diff changeset
  2410
    l := l , ')'.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2411
    self label:l.
6821
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2412
a6c4d3cd072c care for multiline label
Claus Gittinger <cg@exept.de>
parents: 6818
diff changeset
  2413
    "Modified: / 06-07-2006 / 12:43:19 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2414
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2415
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2416
!DebugView methodsFor:'interrupt handling'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2417
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2418
contextInterrupt
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2419
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2420
        'contextIRQ' printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2421
        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
  2422
    ].
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2423
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2424
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2425
    "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
  2426
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2427
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2428
stepInterrupt
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2429
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2430
        'stepIRQ' printCR.
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2431
        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
  2432
    ].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2433
    Processor yield.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2434
    self stepOrNext
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2435
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  2436
    "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
  2437
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2438
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2439
stepOrNext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2440
    |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
  2441
     inBlock left ignore contextBelow lastWrappedContext
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2442
     leftWrap enteredWrap anyStepBlocks 
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2443
     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
  2444
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2445
    "/ DebuggingDebugger := true
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  2446
    "/ DebuggingDebugger := false
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  2447
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2448
    skipLineNr == #return ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2449
        name := Processor activeProcess nameOrId.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2450
        self label:('stepping context returned ' , ' (process: ' , name , ')').
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2451
        here := thisContext sender sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2452
        here setLineNumber:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2453
        here := nil.
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2454
        con := thisContext sender sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2455
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2456
        BreakPointInterrupt handle:[:ex |
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2457
            'DebugView [info]: breakpoint in debugger ignored [stepOrNext]' infoPrintCR.
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2458
            ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2459
        ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2460
            self enter:con select:nil.
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2461
        ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2462
        con := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2463
        ^ self
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2464
    ].
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  2465
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2466
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2467
"/    "/ 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
  2468
"/    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2469
"/    stepForReturn == true ifTrue:[
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2470
"/"/'stepForreturn' printCR.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2471
"/        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
  2472
"/        ^ self
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2473
"/    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2474
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2475
    Processor activeProcess ~~ inspectedProcess ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2476
        'DebugView [info]: stray step interrupt' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2477
        ^ self
52
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2478
    ].
7b48409ae088 *** empty log message ***
claus
parents: 48
diff changeset
  2479
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2480
    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
  2481
    here := here sender.        "the caller; step- or contextIRQ"  
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2482
    here := here sender.        "the interrupted context"  
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2483
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2484
    DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2485
        '*******' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2486
        'here in ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2487
        inWrap ifTrue:['(wrap) ' print.].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2488
        ((ObjectMemory addressOf:here) printStringRadix:16) print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2489
        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
  2490
    ].
10
46e0d4f2079f *** empty log message ***
claus
parents: 7
diff changeset
  2491
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2492
    "/ kludge an bug-workaround;
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2493
    "/ I should not see those ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2494
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2495
    here selector == #ioInterrupt ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2496
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2497
            'oops - should not get that one' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2498
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2499
        Processor ioInterrupt.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2500
        StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2501
        InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2502
        where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2503
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2504
        ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2505
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2506
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2507
    stepUntilEntering notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2508
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2509
            'check if entering ' print. stepUntilEntering printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2510
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2511
        (stepUntilEntering match:here selector) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2512
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2513
                'entering...' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2514
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2515
            name := Processor activeProcess nameOrId.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2516
            self label:('arrived at ' , stepUntilEntering , ' (process: ' , name , ')').
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2517
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2518
            lastStepUntilEntering := stepUntilEntering.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2519
            stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2520
            self enter:here select:nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2521
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2522
            ^ self
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2523
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2524
        "/ see if stepping context is still active ...
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2525
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2526
        con := here.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2527
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2528
        DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2529
            'start searching at: ' print.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2530
            con fullPrint.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2531
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2532
        [con notNil and:[con ~~ steppedContext]] whileTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2533
            con := con sender
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2534
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2535
        con notNil ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2536
            DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2537
                'steppingContext still active - continue stepping' printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2538
            ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2539
            con := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2540
            where := nil. here := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2541
            StepInterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2542
            InterruptPending := 1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2543
            InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2544
            ^ self
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2545
        ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2546
        stepUntilEntering := nil.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2547
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2548
781
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2549
    "
33e4d40fddbe better stepping (stepping in methods blockContext)
Claus Gittinger <cg@exept.de>
parents: 779
diff changeset
  2550
     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
  2551
         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
  2552
         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
  2553
    "
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2554
    isWrap := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2555
    left := false.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2556
    leftWrap := enteredWrap := false.
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2557
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2558
    where := here.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2559
    inWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2560
        wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2561
        5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2562
            (where notNil and:[where isBlockContext not]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2563
                method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2564
                (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2565
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2566
                     in a wrapper method
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2567
                    "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2568
                    wrappedMethod ~~ method ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2569
                        wrappedMethod := method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2570
                        lastWrappedContext := where.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2571
                        where sender receiver == method originalMethod ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2572
                            isWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2573
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2574
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2575
                        where == steppedContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2576
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2577
                            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2578
                                'change stepCon from: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2579
                                steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2580
                                ' to lastWrapped: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2581
                                lastWrappedContext printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2582
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2583
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2584
                            inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2585
                            leftWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2586
                            wrapperContext := steppedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2587
                            steppedContext := lastWrappedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2588
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2589
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2590
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2591
                where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2592
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2593
        ].
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2594
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2595
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2596
    isWrap ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2597
        DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2598
            'ignore wrap' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2599
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2600
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2601
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2602
        "/ ignore, while in wrappers hidden setup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2603
        "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2604
        where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2605
        ObjectMemory flushInlineCaches.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2606
        
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2607
        skipLineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2608
            DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2609
                'skipRet in wrap' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2610
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2611
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2612
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2613
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2614
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2615
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2616
        ^ self
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2617
    ].
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2618
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2619
    inBlock := inBlockBelow := anyStepBlocks := false.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2620
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2621
    DebuggingDebugger == true ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2622
        'bigStep is: ' print. bigStep printCR.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  2623
        'steppedContext is: ' print. steppedContext printCR.
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
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2626
    "/
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2627
    "/ 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
  2628
    "/
787
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2629
    (bigStep 
dab2fdc4a811 care for degenerated stepInterrupt
Claus Gittinger <cg@exept.de>
parents: 786
diff changeset
  2630
    and:[steppedContext notNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2631
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2632
         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
  2633
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2634
        where := here.      "the interrupted context"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2635
        contextBelow := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2636
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2637
        where home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2638
            "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2639
            "/ in a block called by 'our' context ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2640
            "/
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2641
            where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2642
"/ '*block*' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2643
                inBlock := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2644
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2645
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2646
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2647
        where == steppedContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2648
            where := where sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2649
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2650
            where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2651
                where home == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2652
"/ '*block*' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2653
                    inBlock := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2654
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2655
            ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2656
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2657
"/ 'looking for ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2658
"/  (steppedContextAddress printStringRadix:16)print. '' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2659
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2660
"/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
  2661
"/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
  2662
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2663
            where == steppedContext ifFalse:[
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
                "/ check if we are in a context below steppedContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2666
                "/ (i.e. if steppedContext can be reached from
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2667
                "/  interrupted context. Not using context-ref but its
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2668
                "/  address to avoid creation of many useless contexts.)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2669
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2670
                inBlock ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2671
                    [where notNil] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2672
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2673
                        "/ 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
  2674
                        "/ is a block of the steppedContext, we must really
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2675
                        "/ do a single step. Otherwise, stepping through a
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2676
                        "/ 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
  2677
                        receiver := where receiver.
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2678
                        (receiver isBlock
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2679
                        and:[(receiver isKindOf:Block)
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2680
                        and:[receiver home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2681
                        ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2682
                            anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2683
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2684
                            where args do:[:arg |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2685
                                (arg isBlock
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2686
                                and:[(arg isKindOf:Block)
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  2687
                                and:[arg home == steppedContext]])
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2688
                                ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2689
                                    anyStepBlocks := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2690
                                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2691
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2692
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2693
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2694
                        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2695
                            ((ObjectMemory addressOf:where) printStringRadix:16)print. ' ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2696
                            where selector printCR.
1399
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
                        where == steppedContext ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2700
"/ 'found it - below; ignore' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2701
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2702
                             found the interesting context somwehere up in the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2703
                             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
  2704
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2705
                            tracing == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2706
                                here printString 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
                              yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2710
                              - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2711
                              Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2712
                              look for pending interrupts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2713
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2714
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2715
                            contextBelow notNil ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2716
"/ '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
  2717
"/ 'con= ' print. contextBelow printCR.
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2718
"/                                contextBelow selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2719
"/                                    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
  2720
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2721
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2722
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2723
                                    'below stepCon; continue until unwind of: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2724
                                    contextBelow printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2725
                                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2726
                                Processor activeProcess forceInterruptOnReturnOf:contextBelow.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2727
                                StepInterruptPending := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2728
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2729
                                ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2730
1613
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2731
"/                                here selector notNil ifTrue:[
3590eeac968f dont change the windowTitle while stepping (its too slow)
Claus Gittinger <cg@exept.de>
parents: 1598
diff changeset
  2732
"/                                    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
  2733
"/                                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2734
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2735
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2736
                                    'in stepCon; continue single stepping' printCR.
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
                                StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2739
                                InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2740
                            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2741
                            where := nil. here := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2742
                            InStepInterrupt := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2743
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2744
                            ^ self
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2745
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2746
1537
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2747
                        (steppedContext notNil and:[
266fcc1ba7d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1509
diff changeset
  2748
                         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
  2749
                            inBlockBelow := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2750
                        ].
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
                        anyStepBlocks ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2753
                            inBlock ifFalse:[
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2754
"/ workaround a VM bug,
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2755
"/ 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
  2756
"/ sigh
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2757
where isBlockContext ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2758
                                contextBelow := where
2633
41bd35e18e4e line-stepping into blocks fixed.
Claus Gittinger <cg@exept.de>
parents: 2591
diff changeset
  2759
].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2760
                            ]
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
                        where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2763
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2764
                    s := 'context returned'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2765
                    left := true.
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
            ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2768
"/ 'found it right in sender' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2769
                s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2770
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2771
        ] ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2772
"/ 'found it right away' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2773
            s := 'after step'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2774
        ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2775
    ] ifFalse:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2776
"/ ' send' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2777
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2778
         a send
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2779
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2780
        DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2781
            'clear steppedContext' printCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2782
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2783
        steppedContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2784
        s := 'after send'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2785
    ].
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  2786
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2787
    ignore := false.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2788
    (inBlock and:[stepHow == #nextOver or:[stepHow == #nextOut]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2789
        ignore := true.
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  2790
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2791
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2792
    "/ handle the case, when a subBlock leaves;
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2793
    "/ continue stepping in the home context.
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2794
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2795
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2796
        steppedContext home notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2797
            steppedContext := steppedContext home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2798
            s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2799
            left := false.
803
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2800
"/ DebugView enterUnconditional:thisContext withMessage:'debug'.
f8371812c789 fast next in subcontext of subblock
Claus Gittinger <cg@exept.de>
parents: 801
diff changeset
  2801
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2802
        ]
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2803
    ].
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  2804
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2805
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2806
     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
  2807
         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
  2808
         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
  2809
    "
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2810
    (where isNil 
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2811
    and:[wrapperContext notNil])
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2812
    ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2813
        "/ did not find our steppedContext along the chain;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2814
        "/ could be in a wrappedMethods exitBlock ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2815
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2816
        leftWrap ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2817
            where := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2818
            wrappedMethod := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2819
            5 timesRepeat:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2820
                where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2821
                    where isBlockContext ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2822
                        method := where method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2823
                        (method notNil and:[method isWrapped]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2824
                            where == wrapperContext ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2825
                                DebuggingDebugger == true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2826
                                    'change stepCon fromWrapped: ' print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2827
                                    steppedContext print.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2828
                                    ' to: ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2829
                                    wrapperContext printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2830
                                ].
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
                                inWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2833
                                enteredWrap := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2834
                                steppedContext := wrapperContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2835
                                wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2836
                            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2837
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2838
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2839
                    where := where sender
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2840
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2841
            ].
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
        enteredWrap ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2844
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2845
        ]
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2846
    ].
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2847
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2848
    "/
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2849
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2850
    left ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2851
        "/ special care for stepInterrupt in send,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2852
        "/ when created a dummy context (lineNr == 1)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2853
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2854
        steppedContext lineNumber isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2855
            steppedContext selector == here sender selector ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2856
                left := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2857
                s := 'after step'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2858
                steppedContext := here sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2859
            ].
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
        oneMore := true
786
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2862
    ].
429c3146c03d better stepping over stepped send (dummy context in send.c)
Claus Gittinger <cg@exept.de>
parents: 781
diff changeset
  2863
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2864
    inBlock ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2865
"/ 'inBlock' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2866
        s := 'in block'.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2867
    ].
3593
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2868
    inBlockBelow ifTrue:[
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2869
        ignore := true
eb71fcdf0cfa single stepping in blocks of a method (fixed - I hope)
Claus Gittinger <cg@exept.de>
parents: 3591
diff changeset
  2870
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2871
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2872
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2873
        where notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2874
            '(' print. steppedContextLineno print. ') ' print.
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2875
            where printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2876
        ].
654
dac2634ce5ec better support for alien context single stepping
Claus Gittinger <cg@exept.de>
parents: 651
diff changeset
  2877
    ].
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2878
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2879
    ignore ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2880
        (bigStep 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2881
        and:[steppedContextLineno notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2882
        and:[where notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2883
        and:[where lineNumber == steppedContextLineno]]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2884
            (here isBlockContext 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2885
            and:[(here methodHome == steppedContext)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2886
                 or:[here home == steppedContext]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2887
                DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2888
                    'same line but in block' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2889
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2890
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2891
                steppedContext := actualContext := here.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2892
                steppedContextLineno := here lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2893
            ] ifFalse:[    
3063
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2894
                "/ kludge - I only have the info for up to 255 lines
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2895
                steppedContextLineno ~~ 255 ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2896
                    DebuggingDebugger == true ifTrue:[
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2897
                        'same line - ignored' printCR.
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2898
                    ].
5b20f0041699 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3057
diff changeset
  2899
                    ignore := true
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2900
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2901
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2902
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2903
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2904
        (left not 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2905
        and:[skipLineNr notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2906
        and:[where notNil
1764
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  2907
        and:[where lineNumber notNil
e7aa6f50e766 care for nil-linenumber in stepOrNext.
Claus Gittinger <cg@exept.de>
parents: 1762
diff changeset
  2908
        and:[where lineNumber < skipLineNr]]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2909
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2910
                'skip (' print. skipLineNr print. ' unreached - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2911
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2912
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2913
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2914
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2915
        (steppedContextLineno isNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2916
        and:[skipLineNr isNil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2917
        and:[thisContext sender selector == #contextInterrupt]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2918
            DebuggingDebugger == true ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2919
                'same line2 (after conIRQ) - ignored' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2920
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2921
            ignore := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2922
        ].
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2923
    ].
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  2924
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2925
    ignore ifTrue:[
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2926
"/' ' printCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2927
        where := nil. here := nil.
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
         yes, a context below
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2930
          - continue and schedule another stepInterrupt.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2931
          Must flush caches since optimized methods not always
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2932
          look for pending interrupts
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
        ObjectMemory flushInlineCaches.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2935
        StepInterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2936
        InterruptPending := 1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2937
        InStepInterrupt := nil.
5340
8e2526806312 return value of stepInterrupt, contextInterrupt and stepOrNext
Claus Gittinger <cg@exept.de>
parents: 5271
diff changeset
  2938
        ^ self
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2939
    ].
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2940
3055
a84f555bb673 printNL -> printCR
Stefan Vogel <sv@exept.de>
parents: 3034
diff changeset
  2941
"/ ' ' printCR.
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2942
29
8a72e10043f6 *** empty log message ***
claus
parents: 22
diff changeset
  2943
    name := Processor activeProcess nameOrId.
7
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  2944
    self label:(s , ' (process: ' , name , ')').
92b82578c88c *** empty log message ***
claus
parents: 4
diff changeset
  2945
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2946
    tracing := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2947
    bigStep := false.
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2948
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2949
    "release refs to context"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2950
    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
  2951
"/'enter' printCR.
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  2952
1049
3223853742a4 fixed initial selection after stepping with non-verbose
Claus Gittinger <cg@exept.de>
parents: 1030
diff changeset
  2953
    DebuggingDebugger == true ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2954
        '==> 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
  2955
    ].
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2956
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2957
    initiallyShown := nil.
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2958
    (oneMore == true) ifTrue:[
1871
971fe3afd573 care for nil lineNumber in context (how can this happen ?)
Claus Gittinger <cg@exept.de>
parents: 1824
diff changeset
  2959
        (thisContext sender sender lineNumber ? 0) <= 1 ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2960
            initiallyShown := 2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2961
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2962
            initiallyShown := 1
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  2963
        ]
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2964
    ].
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2965
    con := thisContext sender sender.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2966
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2967
    BreakPointInterrupt handle:[:ex |
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2968
        'DebugView [info]: breakpoint in debugger ignored [stepOpNext 2]' infoPrintCR.
3435
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2969
        ex proceed
2f45c629f115 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3434
diff changeset
  2970
    ] do:[
2060
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2971
        self enter:con select:initiallyShown
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2972
    ].
0b1b4269aa75 care for breakPoints while entering debugger
Claus Gittinger <cg@exept.de>
parents: 2042
diff changeset
  2973
    con := nil
1364
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2974
15b36b5c9480 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1361
diff changeset
  2975
    "Created: / 14.10.1996 / 12:53:39 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  2976
    "Modified: / 18.11.2001 / 01:00:55 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2977
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2978
4867
269d62a1ed27 method category rename
Claus Gittinger <cg@exept.de>
parents: 4859
diff changeset
  2979
!DebugView methodsFor:'menu & button actions'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  2980
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2981
addBreakpoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2982
    "add a breakpoint on the selected contexts method - if any"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2983
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2984
    |implementorClass method|
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2985
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2986
    selectedContext isNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2987
        ^ self showError:'** select a context first **'
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2988
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2989
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2990
        ^ self
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2991
    ].
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2992
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2993
    implementorClass := selectedContext methodClass. 
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2994
    implementorClass notNil ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2995
        method := implementorClass compiledMethodAt:selectedContext selector.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2996
        (method notNil and:[method isBreakpointed not]) ifTrue:[
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2997
            method setBreakPoint
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2998
        ]
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  2999
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3000
    contextView middleButtonMenu disable:#addBreakpoint.
3482
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3001
    contextView middleButtonMenu enable:#removeBreakpoint.
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3002
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3003
    "Modified: / 13.1.1998 / 00:24:47 / cg"
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3004
!
6ba75681ea47 add breakpoint menu function
Claus Gittinger <cg@exept.de>
parents: 3463
diff changeset
  3005
5875
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3006
addBrowserBookmark
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3007
    "add a browser-bookmark for the selected contexts method"
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3008
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3009
    |cls sel|
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3010
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3011
    selectedContext isNil ifTrue:[^ self].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3012
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3013
    cls := selectedContext receiver class.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3014
    sel := selectedContext selector.
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3015
    (cls includesSelector:sel) ifFalse:[
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3016
        sel := nil
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3017
    ].
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3018
    Tools::NewSystemBrowser addToBookMarks:cls selector:sel
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3019
!
c85e7a5cb5dd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5842
diff changeset
  3020
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3021
allowBreakPointsInDebugger
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3022
    ^ ignoreBreakpoints not
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3023
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3024
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3025
allowBreakPointsInDebugger:aBoolean
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3026
    ignoreBreakpoints := aBoolean not.
5798
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3027
    self initializeMiddleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 5779
diff changeset
  3028
    self initializeContextViewsMiddleButtonMenu.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3029
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3030
7796
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3031
autoRaiseView
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3032
    ^ UserPreferences current autoRaiseDebugger
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3033
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3034
    "Created: / 15-05-2007 / 13:29:55 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3035
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3036
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3037
autoRaiseView:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3038
    UserPreferences current autoRaiseDebugger:aBoolean
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3039
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3040
    "Created: / 15-05-2007 / 13:30:04 / cg"
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3041
!
fe6f3d31c52a autoRaise (above) other views (an option in the view-menu)
Claus Gittinger <cg@exept.de>
parents: 7713
diff changeset
  3042
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3043
autoUpdateOff
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3044
    "stop the update process"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3045
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3046
    updateProcess notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3047
        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3048
        updateProcess terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3049
        updateProcess := nil
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3050
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3051
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3052
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3053
autoUpdateOn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3054
    "fork a subprocess which updates the contextList in regular intervals"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3055
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3056
    updateProcess isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3057
        updateProcess := 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3058
            [
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3059
                [true] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3060
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3061
                        monitorToggle lampColor:(Color yellow).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3062
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3063
                        monitorToggle activeForegroundColor:Color black.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3064
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3065
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3066
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3067
                    monitorToggle showLamp ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3068
                        monitorToggle lampColor:(Color red).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3069
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3070
                        monitorToggle activeForegroundColor:Color red.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3071
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3072
                    (Delay forSeconds:0.25) wait.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3073
                    self updateContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3074
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3075
            ] forkAt:(Processor activePriority - 1)
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3076
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3077
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3078
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3079
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3080
browseClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3081
    "browse the reveivers class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3082
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3083
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3084
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3085
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3086
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3087
    cls := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3088
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3089
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3090
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3091
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3092
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3093
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3094
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3095
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3096
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3097
browseClassHierarchy
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3098
    "browse the reveivers classHierarchy (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3099
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3100
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3101
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3102
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3103
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3104
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3105
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3106
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3107
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3108
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3109
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3110
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3111
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3112
    cls browserClass browseClassHierarchy:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3113
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3114
    "Modified: / 17.11.2001 / 19:43:06 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3115
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3116
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3117
browseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3118
    "browse the reveivers full protocol (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3119
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3120
    |cls mthd|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3121
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3122
    selectedContext isNil ifTrue:[^ self].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3123
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3124
    mthd := selectedContext method.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3125
    mthd notNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3126
        cls := mthd containingClass.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3127
        "/ still nil if unbound - then use receivers class
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3128
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3129
    cls isNil ifTrue:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3130
        cls := selectedContext receiver class
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3131
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3132
    cls browserClass browseFullClassProtocol:cls.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3133
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3134
    "Modified: / 17.11.2001 / 19:43:43 / cg"
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3135
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3136
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3137
browseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3138
    "browse the implementing class (of the selected contexts message)"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3139
824
099fa90db8aa use new Method>>who interface
Claus Gittinger <cg@exept.de>
parents: 804
diff changeset
  3140
    |mthd who sel cls|
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3141
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3142
    selectedContext isNil ifTrue:[^ self].
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3143
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3144
    mthd := selectedContext method.
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3145
    mthd notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3146
        who := selectedContext method who.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3147
        who notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3148
            cls := who methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3149
            sel := who methodSelector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3150
        ]
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3151
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3152
    cls isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3153
        "/ class not found - try receiver
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3154
        cls := selectedContext receiver class
651
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3155
    ].
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3156
b8a14e281c24 fixed browse, if there is nothing to browse
Claus Gittinger <cg@exept.de>
parents: 646
diff changeset
  3157
    cls browserClass openInClass:cls selector:sel.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3158
1452
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3159
    "Created: / 22.11.1995 / 21:27:01 / cg"
992b6025bfdf checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1409
diff changeset
  3160
    "Modified: / 3.2.1998 / 19:46:40 / cg"
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
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3163
browseImplementors
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3164
    "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
  3165
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3166
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3167
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3168
    ].
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3169
    "/ selectedContext receiver class browserClass
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3170
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3171
         browseImplementorsOf:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3172
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3173
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3174
browseImplementorsOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3175
    "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
  3176
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3177
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3178
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3179
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3180
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3181
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3182
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3183
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3184
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3185
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3186
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3187
    selector := Dialog 
3320
9e67543d692c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3283
diff changeset
  3188
                    requestSelector:'Selector to browse implementors of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3189
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3190
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3191
        UserPreferences systemBrowserClass
4153
603173e5f84e ask userPrefs
Claus Gittinger <cg@exept.de>
parents: 4122
diff changeset
  3192
            browseImplementorsMatching:selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3193
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3194
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3195
    "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
  3196
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3197
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3198
browseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3199
    "browse the reveivers class (of the selected contexts message)"
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
    |cls sel|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3202
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3203
    selectedContext isNil ifTrue:[^ self].
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 := selectedContext receiver class.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3206
    sel := selectedContext selector.
3591
754970803c0f #implements: -> #includesSelector:
Claus Gittinger <cg@exept.de>
parents: 3580
diff changeset
  3207
    (cls includesSelector:sel) ifFalse:[
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3208
        sel := nil
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3209
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3210
    cls browserClass openInClass:cls selector:sel.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3211
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3212
    "Modified: / 3.2.1998 / 20:23:36 / cg"
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3213
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3214
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3215
browseSenders
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3216
    "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
  3217
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3218
    selectedContext isNil ifTrue:[
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3219
        ^ self showError:'** select a context first **'
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3220
    ].
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3221
    UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3222
        browseAllCallsOn:selectedContext selector.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3223
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3224
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3225
browseSendersOf
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3226
    "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
  3227
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3228
    |initial selector sel|
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3229
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3230
    (sel := codeView selection) notNil ifTrue:[
2812
d8975ff21ba7 code reuse
Claus Gittinger <cg@exept.de>
parents: 2790
diff changeset
  3231
        initial := SystemBrowser extractSelectorFrom:sel
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3232
    ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3233
    initial isNil ifTrue:[
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3234
        initial := selectedContext isNil 
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3235
                            ifTrue:[nil]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3236
                            ifFalse:[selectedContext selector].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3237
    ].
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3238
    selector := Dialog 
3333
5fb73dcafce1 selector box
Claus Gittinger <cg@exept.de>
parents: 3330
diff changeset
  3239
                    requestSelector:'Selector to browse senders of:'
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3240
                    initialAnswer:initial.
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3241
    selector size == 0 ifFalse:[
3140
1f85ff8a1a22 UserPreference access
Claus Gittinger <cg@exept.de>
parents: 3124
diff changeset
  3242
        UserPreferences systemBrowserClass
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2678
diff changeset
  3243
            browseAllCallsOn:selector asSymbol.
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3244
    ]
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3245
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  3246
    "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
  3247
!
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  3248
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3249
copyWalkbackText
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3250
    "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
  3251
     This allows pasting it into some other view for printing ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3252
6034
7f7d4b7362dd set selection interface changed
ca
parents: 5955
diff changeset
  3253
    self setClipboardText:(contextArray collect:[:con | con fullPrintString]) asStringCollection
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3254
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3255
    "Modified: 28.8.1995 / 15:31:59 / claus"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3256
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3257
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3258
doAbort
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  3259
    "abort - send Object>>abortSignal, which is usually caught
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3260
     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
  3261
     from whatever the process is doing, but does not terminate it."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3262
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3263
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3264
        (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
  3265
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3266
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3267
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3268
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3269
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3270
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3271
        inspectedProcess isDead ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3272
            self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3273
            ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3274
        ].
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3275
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3276
            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
  3277
        ] ifTrue:[
3434
05bfb9406e06 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3432
diff changeset
  3278
            self interruptProcessWith:[AbortOperationRequest raise].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3279
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3280
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3281
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3282
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3283
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3284
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3285
    exitAction := #abort.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3286
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3287
    "exit private event-loop"
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3288
    catchBlock notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3289
        abortButton turnOff.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3290
        catchBlock value.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3291
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3292
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3293
        'DebugView [warning]: abort failed' errorPrintCR.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3294
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3295
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3296
    ^ self.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3297
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3298
    "Modified: / 17.11.2001 / 22:53:22 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3299
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3300
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3301
doAbortAll
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3302
    "abortAll - send Object>>abortAllSignal, which is usually caught
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3303
     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
  3304
     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
  3305
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3306
    self checkIfCodeIsReallyModified ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3307
        (self confirm:('Code modified - abort anyway ?'))
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3308
        ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3309
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3310
        ]
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3311
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3312
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3313
    inspecting ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3314
        inspectedProcess isDead ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3315
            self showTerminated.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3316
            ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3317
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3318
        (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3319
            self showError:'** the process does not handle the abort signal **'
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3320
        ] ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3321
            self interruptProcessWith:[AbortAllOperationRequest raise].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3322
        ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3323
        ^ self
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3324
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3325
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3326
    steppedContext := wrapperContext := nil.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3327
    haveControl := false.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3328
    exitAction := #abortAll.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3329
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3330
    "exit private event-loop"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3331
    catchBlock notNil ifTrue:[
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3332
        abortButton turnOff.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3333
        catchBlock value.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3334
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3335
        "/ not reached
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3336
        'DebugView [warning]: abort failed' errorPrintCR.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3337
    ].
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3338
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3339
    ^ self.
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3340
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3341
    "Modified: / 17.11.2001 / 22:53:22 / cg"
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3342
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  3343
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3344
doContinue
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3345
    "continue from menu"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3346
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3347
    |proc exContext ex answer|
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3348
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3349
    self checkIfCodeIsReallyModified ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3350
        (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
  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
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3357
            continueButton foregroundColor:Color red darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3358
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3359
        continueButton label:(resources string:'Stop').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3360
        continueButton action:[self doStop].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3361
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3362
        self processPerform:#resume.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3363
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3364
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3365
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3366
    canContinue ifTrue:[
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3367
        exContext := thisContext findSpecialHandle:false raise:true.
1725
40a8fdab9974 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1719
diff changeset
  3368
        
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3369
        (exContext notNil
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  3370
        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
  3371
        and:[ ex isException
5911
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3372
        and:[ ex signal == NoHandlerError
a1444e8c5061 #enter:... returns the value for proceed
Stefan Vogel <sv@exept.de>
parents: 5904
diff changeset
  3373
        and:[ ex parameter signal == RecursionError]]]])
1719
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3374
        ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3375
            "/ debug due to unhandled recursionInterrupt.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3376
            "/ ask if we should proceed with more stack.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3377
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3378
            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
  3379
            answer == true ifTrue:[
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3380
                proc := Processor activeProcess.
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3381
                proc setMaximumStackSize:(proc maximumStackSize * 2).
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3382
            ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3383
        ].
4f99e8100bb5 when continuing after a stack-overflow,
Claus Gittinger <cg@exept.de>
parents: 1699
diff changeset
  3384
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3385
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3386
        tracing := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3387
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3388
        exitAction := #continue.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3389
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3390
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3391
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3392
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3393
        "/ not reached.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3394
        'DebugView [warning]: continue failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3395
        continueButton turnOff.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3396
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3397
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3398
        inspecting ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3399
            'DebugView [info]: resuming top context' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3400
            self showSelection:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3401
            self doReturn
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3402
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3403
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3404
1917
200617958f79 continue with more stack fixed
Claus Gittinger <cg@exept.de>
parents: 1906
diff changeset
  3405
    "Modified: / 5.10.1998 / 13:03:47 / cg"
2308
96e0033aa5a3 Exception handling change.
Stefan Vogel <sv@exept.de>
parents: 2305
diff changeset
  3406
    "Modified: / 26.7.1999 / 15:38:45 / stefan"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3407
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3408
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3409
doDefine
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3410
    |selectionIndex selector argNames receiversClass proto haltStmtDef haltStmtFix code cat
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3411
     bagOfClassNames bagOfUsedClassNames|
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3412
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3413
    selectionIndex := contextView selection.
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3414
3283
1f20f44c64bf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3270
diff changeset
  3415
    selector := actualContext selector.
5955
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3416
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3417
    "generate nice argument names"
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3418
    bagOfClassNames := (actualContext args collect:[:eachArg | eachArg class name]) asBag.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3419
    bagOfUsedClassNames := Bag new.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3420
    argNames := actualContext args 
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3421
                    collect:
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3422
                        [:eachArg |
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3423
                            |nm|
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3424
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3425
                            nm := eachArg class name.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3426
                            (bagOfClassNames occurrencesOf:nm) == 1 ifTrue:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3427
                                nm article , nm
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3428
                            ] ifFalse:[
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3429
                                bagOfUsedClassNames add:nm.
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3430
                                nm asLowercaseFirst , (bagOfUsedClassNames occurrencesOf:nm) printString
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3431
                            ].
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3432
                        ].
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3433
8704599a5d2f nice argument names in define-method
ca
parents: 5911
diff changeset
  3434
    proto := Method methodDefinitionTemplateForSelector:selector andArgumentNames:argNames.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3435
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3436
    haltStmtDef := '    self halt:''please define %2 here''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3437
    haltStmtFix := '    self halt:''please change %2 as required''.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3438
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3439
    actualContext receiver isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3440
        (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
  3441
        ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3442
            ^ self
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3443
        ]
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3444
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3445
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3446
    receiversClass := actualContext receiver class.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3448
    (receiversClass instVarNames includes:selector) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3449
        code := '%1\' , haltStmtFix , '\    ^ %2'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3450
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3451
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3452
    (selector numArgs == 1
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3453
    and:[(selector endsWith:':')
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3454
    and:[receiversClass instVarNames includes:(selector copyWithoutLast:1)]]) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3455
    ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3456
        code := '%1\' , haltStmtFix , '\    %2 := arg.'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3457
        cat := 'accessing'.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3458
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3459
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3460
"/    actualContext receiver isClass ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3461
"/        selector == #new ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3462
"/            code := '%1\' , haltStmt , '\    ^ self basicNew initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3463
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3464
"/        selector == #'new:' ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3465
"/            code := '%1\' , haltStmt , '\    ^ (self basicNew:arg) initialize'
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3466
"/        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3467
"/    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3468
    code isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3469
        code := '%1\' , haltStmtDef
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3470
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3471
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3472
    self 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3473
        codeAccept:(code bindWith:proto with:selector) withCRs
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3474
        unwind:false
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3475
        category:cat
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3476
        onCancel:[^ self]. 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3477
3270
cd3562cffc61 fixed define-method for numArgs>0
Claus Gittinger <cg@exept.de>
parents: 3269
diff changeset
  3478
    self doShowSelection:selectionIndex.
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  3479
    self doRestart
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  3480
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3481
    "Modified: / 17.11.2001 / 23:43:54 / cg"
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3482
!
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  3483
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3484
doIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3485
    self allowBreakPointsInDebugger:false
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3486
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3487
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3488
doMicroSend
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3489
    "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
  3490
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3491
    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3492
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3493
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3494
        (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
  3495
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3496
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3497
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3498
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3499
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3500
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3501
        steppedContext := wrapperContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3502
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3503
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3504
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3505
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3506
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3507
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3508
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3509
        'DebugView [warning]: send failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3510
        sendButton turnOff.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3511
    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3512
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3513
    "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
  3514
    "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
  3515
!
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3516
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3517
doNext
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3518
    "skip for next source-code line; entering blocks"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3519
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3520
    stepHow := #nextIn.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3521
    self doStep:nil
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3522
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3523
    "Modified: 7.3.1997 / 18:38:41 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3524
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3525
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3526
doNextOut
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3527
    "skip for next source-code line; leaving blocks"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3528
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3529
    stepHow := #nextOut.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3530
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3531
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3532
    "Created: 3.3.1997 / 21:31:22 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3533
    "Modified: 7.3.1997 / 18:38:49 / cg"
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3534
!
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3535
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3536
doNextOver
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3537
    "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
  3538
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3539
    stepHow := #nextOver.
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3540
    self doStep:nil
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3541
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3542
    "Created: 3.3.1997 / 20:50:38 / cg"
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3543
    "Modified: 7.3.1997 / 18:39:00 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3544
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3545
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3546
doNoTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3547
    traceView notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3548
        traceView topView destroy.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3549
        traceView := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3550
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3551
    tracing := false
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3552
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3553
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3554
doNotIgnoreBreakpoints
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  3555
    self allowBreakPointsInDebugger:true
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3556
!
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  3557
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3558
doOpenReportMailApp
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3559
    "open a mail report tool"
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3560
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3561
    | str |
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3562
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3563
    str := '' writeStream.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3564
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3565
    str nextPutLine:('Error notification from '
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3566
                    , OperatingSystem getLoginName
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3567
                    , '@'
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3568
                    , OperatingSystem getHostName).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3569
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3570
5779
f2f987342b81 Use Timestamp/#asTimestamp instead of AbsoluteTime/#asAbsoluteTime
Stefan Vogel <sv@exept.de>
parents: 5664
diff changeset
  3571
    str nextPutLine:('Time: ' , Timestamp now printString).
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3572
    str nextPutLine:('STX Version: ' , Smalltalk versionString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3573
    str nextPutLine:('Description: ' , self label).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3574
"/    str nextPutLine:('Error: ', printedException description).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3575
"/    str nextPutLine:('Signal: ', printedException signal printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3576
"/    str nextPutLine:('Parameter: ', printedException parameter printString).
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3577
    str nextPutLine:'Backtrace:'.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3578
    str cr.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3579
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3580
    firstContext notNil ifTrue:[
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3581
        firstContext fullPrintAllOn:str.
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3582
    ].
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3583
    str cr;cr.
7844
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3584
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3585
    SendMailTool 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3586
        openForMessage:(str contents) 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3587
        withSubject:('STX Error:[', self label, ']') 
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3588
        preOpenBlock:[:inst|
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3589
            inst recipientEntryField value:'error@exept.de'
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3590
        ].
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3591
cf6ca4e657fb changed #doOpenReportMailApp
Claus Gittinger <cg@exept.de>
parents: 7843
diff changeset
  3592
    "Modified: / 20-09-2007 / 12:40:40 / cg"
4356
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3593
!
d953f8e8a4fe can send mail to SMTP Server now
penk
parents: 4153
diff changeset
  3594
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3595
doRestart
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3596
    "restart - the selected context will be restarted"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3597
    
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3598
    self checkIfCodeIsReallyModified ifTrue:[
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3599
        (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
  3600
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3601
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3602
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3603
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3604
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3605
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3606
        ].
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3607
        self interruptProcessWith:[ selectedContext unwindAndRestart ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3608
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3609
    ].
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3610
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3611
    haveControl := false.
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3612
    exitAction := #restart. "exit private event-loop"
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3613
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3614
    catchBlock value.
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3615
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3616
    "/ normally not reached
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3617
    
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3618
    'DebugView [warning]: restart failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3619
    restartButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3620
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3621
    "Modified: / 29.7.1998 / 21:49:53 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3622
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3623
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3624
doReturn
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3625
    "return - the selected context will do a ^nil"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3626
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3627
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3628
        (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
  3629
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3630
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3631
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3632
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3633
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3634
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3635
        selectedContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3636
            ^ self showError:'** select a context first **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3637
        ].
2313
265e13afc504 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2312
diff changeset
  3638
        self interruptProcessWith:[selectedContext unwind:nil].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3639
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3640
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3641
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3642
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3643
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3644
    exitAction := #return.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3645
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3646
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3647
    catchBlock value.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3648
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3649
    "/ not reached
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  3650
    'DebugView [warning]: return failed' errorPrintCR.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3651
    returnButton turnOff.
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3652
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3653
    "Modified: / 29.7.1998 / 21:50:03 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3654
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3655
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3656
doSend
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3657
    "single send; reenter with next message send"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3658
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3659
    stepHow := #send.
1067
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3660
    self doStep:-1
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3661
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3662
"/    inspecting ifTrue:[^ self].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3663
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3664
"/    canContinue ifTrue:[
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3665
"/        steppedContext := wrapperContext := nil.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3666
"/        haveControl := false.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3667
"/        exitAction := #step.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3668
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3669
"/        "exit private event-loop"
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3670
"/        catchBlock notNil ifTrue:[catchBlock value].
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3671
"/
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3672
"/        "/ not reached
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3673
"/        'DebugView [warning]: send failed' errorPrintCR.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3674
"/        sendButton turnOff.
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3675
"/    ]
e6d52091b3af old: SEND executed debuggee up to the next send
Claus Gittinger <cg@exept.de>
parents: 1065
diff changeset
  3676
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3677
    "Modified: 7.3.1997 / 18:41:26 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3678
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3679
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3680
doStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3681
    "skip for next send in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3682
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  3683
    stepHow := #step.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3684
    self doStep:-1
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  3685
1072
50366cfc181a step vs send
Claus Gittinger <cg@exept.de>
parents: 1069
diff changeset
  3686
    "Modified: 7.3.1997 / 18:46:49 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3687
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3688
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3689
doStep:lineNr
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3690
    "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
  3691
     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
  3692
     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
  3693
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3694
    |con method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3695
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3696
    inspecting ifTrue:[^ self].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3697
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3698
    self checkIfCodeIsReallyModified ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3699
        (self confirm:('Code modified - step anyway ?'))
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3700
        ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3701
            ^ self
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3702
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3703
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3704
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3705
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3706
        selectedContext notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3707
            con := actualContext. "/ selectedContext.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3708
            steppedContextLineno := actualContext lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3709
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3710
            con := contextArray at:2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3711
            steppedContextLineno := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3712
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3713
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3714
        skipLineNr := lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3715
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3716
        lineNr == -1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3717
            steppedContextLineno := skipLineNr := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3718
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3719
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  3720
        (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3721
            steppedContext := contextArray at:1.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3722
            stepHow := #nextIn.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3723
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3724
            stepHow == #nextOut ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3725
                steppedContext := con home.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3726
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3727
                steppedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3728
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3729
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3730
        wrapperContext := nil.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  3731
789
a9595b71a8fa improved next-stepping in blocks
Claus Gittinger <cg@exept.de>
parents: 788
diff changeset
  3732
"/ ' 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
  3733
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3734
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3735
         if we step in a wrapped method,
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3736
         prepare to skip the prolog ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3737
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3738
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3739
        inWrap := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3740
        method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3741
        (method notNil 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3742
        and:[method isWrapped
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3743
        and:[method originalMethod ~~ method]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3744
            inWrap := true
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3745
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3746
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3747
        lineNr == #return ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3748
            Processor activeProcess forceInterruptOnReturnOf:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3749
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3750
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3751
        con := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3752
        bigStep := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3753
        haveControl := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3754
        exitAction := #step.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3755
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3756
        "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3757
        catchBlock value.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3758
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3759
        "/ not reached
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3760
        'DebugView [warning]: step failed' errorPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3761
        stepButton turnOff. nextButton turnOff. sendButton turnOff.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3762
    ]
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3763
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3764
    "Modified: / 29.7.1998 / 21:50:16 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3765
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3766
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3767
doStop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3768
    "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
  3769
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3770
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3771
        device hasColors ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3772
            continueButton foregroundColor:Color green darkened darkened.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3773
        ].
6647
89560e789618 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6622
diff changeset
  3774
        continueButton label:(resources string:'Continue').
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3775
        continueButton action:[self doContinue].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3776
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3777
        self processPerform:#stop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3778
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3779
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3780
    ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3781
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  3782
    "Modified: 20.10.1996 / 18:30:48 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3783
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3784
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3785
doTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3786
    "terminate - the process has a chance for cleanup"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3787
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  3788
    self checkIfCodeIsReallyModified ifTrue:[
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3789
        (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
  3790
        ifFalse:[
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3791
            ^ self
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3792
        ]
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3793
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3794
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3795
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3796
        self processPerform:#terminate.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3797
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3798
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3799
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3800
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3801
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3802
    exitAction := #terminate. 
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3803
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3804
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3805
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3806
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3807
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3808
    inspecting ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3809
        'DebugView [warning]: terminate failed' errorPrintCR.
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3810
        (self confirm:'Regular terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3811
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3812
            Processor activeProcess terminate.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3813
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3814
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3815
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  3816
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  3817
    "Modified: / 29.7.1998 / 21:50:35 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3818
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3819
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3820
doTrace
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3821
    "tracing - not really implemented ..."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3822
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3823
    self warn:'this function is not yet implemented'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3824
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3825
"/    |v b|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3826
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3827
"/    traceView isNil ifTrue:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3828
"/        v := StandardSystemView on:Display.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3829
"/        v label:'Debugger-Trace'.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3830
"/        v icon:icon.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3831
"/
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3832
"/        b := Button label:'untrace' in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3833
"/        b origin:(0 @ 0) extent:(1.0 @ (b height)).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3834
"/        b action:[
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3835
"/            StepInterruptPending := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3836
"/            tracing := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3837
"/            v unrealize.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3838
"/            traceView := nil
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3839
"/        ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3840
"/        traceView := ScrollableView for:TextCollector in:v.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3841
"/        traceView origin:(0 @ (b height))
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3842
"/                  extent:[v width @ (v height - b height)]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3843
"/    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3844
"/    v realize.
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
"/    tracing := true.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3847
!
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
doTraceStep
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3850
    "tracestep - not implemented yet"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3851
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3852
    canContinue ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3853
        tracing := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3854
        self doStep
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3855
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3856
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3857
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3858
exit
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3859
    "exit from menu: immediate exit from smalltalk"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3860
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3861
    OperatingSystem exit
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
inspectContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3865
    "launch an inspector on the currently selected context"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3866
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3867
    contextView selection notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3868
        (contextView selectionValue startsWith:'**') ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3869
            (contextArray at:(contextView selection)) inspect.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3870
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3871
    ]
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3872
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3873
8142
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3874
middleButtonMenu
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3875
    <resource: #programMenu >
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3876
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3877
    |items m|
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3878
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3879
    exclusive ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3880
        items := #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3881
                    ('Show More WalkBack'               showMore                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3882
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3883
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3884
                    ('Add Breakpoint'                   addBreakpoint           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3885
                    ('Remove Breakpoint'                removeBreakpoint        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3886
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3887
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3888
                    ('Copy WalkBack Text'               copyWalkbackText        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3889
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3890
                    ('QuickTerminate'                   quickTerminate          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3891
                    ('='                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3892
                    ('Exit Smalltalk (No Confirmation)' exit                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3893
                  ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3894
    ] ifFalse:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3895
        items := #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3896
                    ('Show More WalkBack'               showMore                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3897
                    ('Show Verbose WalkBack'            showVerboseWalkback     )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3898
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3899
                    ('Skip'                             skip                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3900
                    ('Step Out'                         skipForReturn           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3901
                    ('Skip until Entering...'           skipUntilEntering       )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3902
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3903
"
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3904
                    ('Continue'                         doContinue              )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3905
                    ('Terminate'                        doTerminate             )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3906
                    ('Abort'                            doAbort                 )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3907
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3908
                    ('Step'                             doStep                  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3909
                    ('Send'                             doSend                  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3910
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3911
                    ('Return'                           doReturn                )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3912
                    ('Restart'                          doRestart               )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3913
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3914
"
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3915
                    ('Add Breakpoint'                   addBreakpoint           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3916
                    ('Remove Breakpoint'                removeBreakpoint        )   
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3917
                    ('Remove all Break- && Tracepoints'  removeAllBreakpoints    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3918
                ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3919
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3920
        self allowBreakPointsInDebugger ifFalse:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3921
            items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3922
                        ('Allow Breakpoints && halt in Debugger'      doNotIgnoreBreakpoints  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3923
                    ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3924
        ] ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3925
            items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3926
                        ('Ignore Breakpoints && halt in Debugger'     doIgnoreBreakpoints  )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3927
                    ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3928
        ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3929
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3930
        items := items , #(
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3931
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3932
                    ('Browse Implementing Class'      browseImplementingClass )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3933
                    ('Browse Receivers Class'         browseReceiversClass    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3934
                    ('Browse Receivers Class Hierarchy' browseClassHierarchy    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3935
                    ('Browse Receivers Full Protocol'   browseFullClassProtocol )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3936
                    ('Implementors'                     browseImplementors      )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3937
                    ('Implementors Of...'               browseImplementorsOf    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3938
                    ('Senders'                          browseSenders           )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3939
                    ('Senders Of...'                    browseSendersOf         )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3940
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3941
                    ('Inspect Context'                  inspectContext          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3942
                    ('Copy WalkBack Text'               copyWalkbackText        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3943
                    ('-'                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3944
                    ('QuickTerminate'                   quickTerminate          )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3945
                    ('='                                                        )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3946
                    ('Exit Smalltalk (No Confirmation)' exit                    )
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3947
                  ).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3948
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3949
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3950
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3951
    m := PopUpMenu 
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3952
                itemList:items
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3953
                resources:resources
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3954
                receiver:self
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3955
                for:contextView.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3956
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3957
    verboseBacktrace ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3958
        m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3959
        m selectorAt:#showVerboseWalkback put:#showDenseWalkback
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3960
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3961
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3962
    inspecting ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3963
        m notNil ifTrue:[
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3964
            m disableAll:#(doTraceStep removeBreakpoint browseImplementingClass browseReceiversClass
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3965
                           browseClassHierarchy browseFullClassProtocol
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3966
                           browseImplementors browseSenders inspectContext skip doStepOut).
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3967
        ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3968
    ].
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3969
    self updateMenuItems.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3970
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3971
    ^ m.
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3972
!
4ad36cbbcffb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8131
diff changeset
  3973
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3974
openAboutThisApplication
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3975
    "opens an about box for this application."
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3976
7112
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3977
    Dialog aboutClass:self class.
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3978
b1c931857a1e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7065
diff changeset
  3979
    "Modified: / 12-09-2006 / 17:20:38 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3980
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  3981
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3982
quickTerminate
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3983
    "quick terminate - the process will get no chance for cleanup actions"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3984
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3985
    inspecting ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3986
        self processPerform:#terminateNoSignal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  3987
        ^ self
266
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
788
26d452e40e52 care for wrappedMethods exit-blocks, when singleStepping
Claus Gittinger <cg@exept.de>
parents: 787
diff changeset
  3990
    steppedContext := wrapperContext := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3991
    haveControl := false.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  3992
    exitAction := #quickTerminate.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3993
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3994
    "exit private event-loop"
6365
027e8d0a78ee code cleanup
Claus Gittinger <cg@exept.de>
parents: 6361
diff changeset
  3995
    catchBlock value.
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3996
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3997
    "/ not reached (normally)
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  3998
    inspecting ifFalse:[
5884
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  3999
        'DebugView [warning]: quick terminate failed' errorPrintCR.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4000
        (self confirm:'Regular quick terminate failed - do it the hard way ?') ifTrue:[
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4001
            Debugger newDebugger.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4002
            Processor activeProcess terminateNoSignal.
31ed55fda189 even harder terminate required sometimes.
penk
parents: 5879
diff changeset
  4003
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4004
    ].
581
d1a1ae9d49e4 removed old non-thread support
Claus Gittinger <cg@exept.de>
parents: 579
diff changeset
  4005
    terminateButton turnOff.
477
6351acd20dfb checkin from browser
Claus Gittinger <cg@exept.de>
parents: 448
diff changeset
  4006
935
7c75379de9ec newStyle info & error messages
Claus Gittinger <cg@exept.de>
parents: 934
diff changeset
  4007
    "Modified: 10.1.1997 / 17:42:10 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4008
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4009
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4010
removeAllBreakpoints
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4011
    "remove all trace & breakpoints - if any"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4012
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4013
    (MessageTracer notNil and:[MessageTracer isLoaded]) ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4014
        self withExecuteCursorDo:[
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4015
            MessageTracer unwrapAllMethods
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4016
        ]
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  4017
    ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4018
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4019
    "Modified: / 21.5.1998 / 01:44:43 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4020
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4021
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4022
removeBreakpoint
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4023
    "remove breakpoint on the selected contexts method - if any"
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
    |implementorClass method|
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4026
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4027
    selectedContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4028
        ^ self showError:'** select a context first **'
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4029
    ].
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4030
    (MessageTracer isNil or:[MessageTracer isLoaded not]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4031
        ^ self
1319
ffede4099c04 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1311
diff changeset
  4032
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4033
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4034
    implementorClass := selectedContext methodClass. 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4035
    implementorClass notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4036
        method := implementorClass compiledMethodAt:selectedContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4037
        (method notNil and:[method isBreakpointed]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4038
            method clearBreakPoint
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4039
        ]
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4040
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4041
    contextView middleButtonMenu disable:#removeBreakpoint.
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4042
    contextView middleButtonMenu enable:#addBreakpoint.
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  4043
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4044
    "Modified: / 13.1.1998 / 00:24:47 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4045
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4046
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4047
showDenseWalkback
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4048
    |m|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4049
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4050
    m := contextView middleButtonMenu.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4051
    verboseBacktrace := false.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4052
    m labelAt:#showDenseWalkback put:(resources string:'Show Verbose WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4053
    m selectorAt:#showDenseWalkback put:#showVerboseWalkback.
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4054
    self redisplayBacktrace.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4055
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4056
    "Created: / 17.11.2001 / 20:08:08 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4057
    "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
  4058
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4059
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4060
showMore
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4061
    "double the number of contexts shown"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4062
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4063
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4064
        nChainShown := nChainShown * 2.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4065
        self redisplayBacktrace.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4066
    ]
563
93633e3ff304 selection: / setSelection:
Claus Gittinger <cg@exept.de>
parents: 554
diff changeset
  4067
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4068
    "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
  4069
!
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4070
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4071
showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4072
    |m|
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4073
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4074
    verboseBacktrace := true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4075
    m := contextView middleButtonMenu.
3694
814e7ad96e7b menu texts
Claus Gittinger <cg@exept.de>
parents: 3671
diff changeset
  4076
    m labelAt:#showVerboseWalkback put:(resources string:'Show Dense WalkBack').
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4077
    m selectorAt:#showVerboseWalkback put:#showDenseWalkback.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4078
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4079
    self redisplayBacktrace.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4080
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4081
    "Created: / 17.11.2001 / 20:07:57 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4082
    "Modified: / 17.11.2001 / 22:39:41 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4083
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4084
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4085
showingDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4086
    ^ verboseBacktrace == false.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4087
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4088
    "Created: / 17.11.2001 / 20:13:53 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4089
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4090
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4091
showingVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4092
    ^ verboseBacktrace == true.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4093
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4094
    "Created: / 17.11.2001 / 20:13:46 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4095
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4096
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4097
skip
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4098
    "skip for cursor line in selected method"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4099
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4100
    stepHow := #skip.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4101
    self doStep:codeView cursorLine.
790
6a166894d5e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 789
diff changeset
  4102
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4103
    "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
  4104
!
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4105
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4106
skipForReturn
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4107
    "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
  4108
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4109
    stepHow := #skipReturn.
754
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4110
    self doStep:#return.
1848d4e89bc4 much better next & step (no longer single-steps through all sends)
Claus Gittinger <cg@exept.de>
parents: 745
diff changeset
  4111
1063
cc4f9a5d49ac added stepIn, stepOver and stepOut;
Claus Gittinger <cg@exept.de>
parents: 1049
diff changeset
  4112
    "Modified: 3.3.1997 / 20:56:32 / cg"
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4113
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4114
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4115
skipUntilEntering
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4116
    "skip until some particular method is invoked."
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4117
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4118
    |selector|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4119
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4120
    selector := Dialog 
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4121
                request:'Skip until entering what (matchpattern):'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4122
                initialAnswer:self goodSkipUntilSelector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4123
    selector size == 0 ifTrue:[^ self].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4124
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4125
    stepUntilEntering := selector asSymbol.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4126
    stepHow := #send.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4127
    self doStep:-1.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4128
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4129
    "Modified: 3.3.1997 / 20:56:32 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4130
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4131
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4132
toggleVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4133
    verboseBacktrace ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4134
        self showVerboseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4135
    ] ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4136
        self showDenseWalkback
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4137
    ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4138
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4139
    "Modified: / 17.11.2001 / 20:07:45 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4140
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4141
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4142
!DebugView methodsFor:'private'!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4143
6487
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4144
abortAllIsHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4145
    ^ AbortAllOperationRequest isHandled
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4146
!
ad82a074feae new menu action: abortAll
Claus Gittinger <cg@exept.de>
parents: 6464
diff changeset
  4147
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4148
busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4149
    ^ busy
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4150
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4151
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4152
canAddBreakpoint
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4153
    |m|
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4154
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4155
    m := contextView middleButtonMenu.
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4156
    ^ m notNil and:[m isEnabled:#addBreakpoint]
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4157
!
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4158
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4159
canBrowseClassHierarchy
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:#browseClassHierarchy]
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
canBrowseFullClassProtocol
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4167
    |m|
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
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4170
    ^ m notNil and:[m isEnabled:#browseFullClassProtocol]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4171
!
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
canBrowseImplementingClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4174
    |m|
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
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4177
    ^ m notNil and:[m isEnabled:#browseImplementingClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4178
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4179
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4180
canBrowseReceiversClass
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4181
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4182
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4183
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4184
    ^ m notNil and:[m isEnabled:#browseReceiversClass]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4185
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4186
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4187
canDefineMethod
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4188
    ^ defineButton isVisible
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4189
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4190
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4191
canRemoveBreakpoint
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4192
    |m|
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4193
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4194
    m := contextView middleButtonMenu.
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4195
    ^ m notNil and:[m isEnabled:#removeBreakpoint]
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4196
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4197
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4198
canRestart
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4199
    ^ restartButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4200
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4201
    "Modified: / 17.11.2001 / 19:59:49 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4202
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4203
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4204
canReturn
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4205
    ^ returnButton isEnabled
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4206
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4207
    "Modified: / 17.11.2001 / 19:59:18 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4208
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4209
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4210
canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4211
    ^ canShowMore
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4212
!
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4213
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4214
contextListEntryFor:aContext
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4215
    |s|
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4216
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4217
    aContext selector == #doIt ifTrue:[
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4218
        aContext receiver isNil ifTrue:[
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4219
            ^ 'doIt' asText allBold
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4220
        ]
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4221
    ].
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4222
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4223
    s := Text new writeStream.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4224
    aContext printOn:s.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4225
    ^ s contents
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4226
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4227
    "Created: / 21-05-2007 / 13:30:24 / cg"
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4228
!
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4229
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4230
exclusive:aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4231
    exclusive := aBoolean
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4232
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4233
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4234
explainSelection
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4235
    |interval node definingNode crsrPos nm varIdx|
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4236
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4237
    interval := self selectedInterval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4238
    interval isEmpty ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4239
        crsrPos := codeView characterPositionOfCursor.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4240
        codeView characterUnderCursor isSeparator ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4241
            crsrPos := (crsrPos - 1) max:1    
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4242
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4243
        interval := crsrPos to:crsrPos.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4244
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4245
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4246
    node := self findNodeForInterval:interval.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4247
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4248
    node notNil ifTrue: [
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4249
        node isVariable ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4250
            nm := node name.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4251
3540
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4252
            (nm = 'self') ifTrue:[
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4253
                self showValue:(actualContext methodHome receiver).
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4254
                ^ self
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4255
            ].
cb6323974c29 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3539
diff changeset
  4256
            (#( 'super' 'thisContext') includes:nm) ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4257
                ^ self
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
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4260
            definingNode := node whoDefines:nm.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4261
            definingNode notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4262
                definingNode isMethod ifTrue:[
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4263
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4264
                    varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4265
                        self showValue:(actualContext methodHome argAt:varIdx)
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4266
                    ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4267
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4268
                definingNode isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4269
                    varIdx := definingNode arguments findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4270
                    (definingNode arguments contains:[:arg | arg name = nm]) ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4271
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4272
                        ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4273
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4274
                ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4275
                definingNode parent notNil ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4276
                    definingNode parent isMethod ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4277
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4278
                        varIdx ~~ 0 ifTrue:[
3542
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4279
                            actualContext methodHome numVars >= varIdx ifTrue:[
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4280
                                self showValue:(actualContext methodHome varAt:varIdx)
13b75aae450c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3540
diff changeset
  4281
                            ]
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4282
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4283
                    ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4284
                    definingNode parent isBlock ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4285
                        varIdx := definingNode temporaries findFirst:[:arg | arg name = nm].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4286
                        varIdx ~~ 0 ifTrue:[
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4287
                        ].
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4288
                    ]
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4289
                ].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4290
            ].
3518
19adb76323ed checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3517
diff changeset
  4291
3517
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
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4295
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4296
findNodeForInterval:interval
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4297
    |tree node source|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4298
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4299
    interval isEmpty ifTrue: [^ nil].
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4300
    RBParser isNil ifTrue:[^ nil].
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4301
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4302
    source := codeView contents asString string.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4303
    source := currentMethod source.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4304
8131
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4305
^ DoWhatIMeanSupport findNodeForInterval:interval in:(source string).
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4306
"/    Error handle:[:ex |
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4307
"/        Transcript showCR:ex description.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4308
"/    ] do:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4309
"/        Compiler parseErrorSignal catch:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4310
"/            tree := RBParser 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4311
"/                        parseMethod:source 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4312
"/                        onError: [:str :err ":nodesSoFar" | ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4313
"/        ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4314
"/        tree isNil ifTrue:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4315
"/            Compiler parseErrorSignal handle:[:ex |
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4316
"/            ] do:[
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4317
"/                tree := RBParser 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4318
"/                            parseDoItMethodBody:source 
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4319
"/                            onError: [:str :err ":nodesSoFar" | ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4320
"/            ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4321
"/        ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4322
"/    ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4323
"/    tree isNil ifTrue:[^ nil].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4324
"/
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4325
"/    node := tree whichNodeIsContainedBy:interval.
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4326
"/    node isNil ifTrue: [
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4327
"/        node := DoWhatIMeanSupport findNodeIn:tree forInterval:interval
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4328
"/    ].
3c3539ab8681 menu also nationalized
Claus Gittinger <cg@exept.de>
parents: 7999
diff changeset
  4329
"/    ^ node
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4330
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4331
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4332
findNodeIn:tree forInterval:interval
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4333
    <resource: #obsolete>
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4334
 
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4335
    |node|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4336
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4337
self obsoleteMethodWarning.
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4338
    node := nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4339
    tree nodesDo:[:each | 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4340
        (each intersectsInterval:interval) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4341
            (node isNil or:[node == each parent]) ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4342
                node := each
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4343
            ] ifFalse:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4344
                (node parent notNil 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4345
                    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
  4346
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4347
        ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4348
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4349
    ^ node
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4350
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4351
2581
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4352
goodSkipUntilSelector
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4353
    |current|
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4354
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4355
    lastStepUntilEntering notNil ifTrue:[^ lastStepUntilEntering].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4356
    selectedContext isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4357
    current := selectedContext selector.
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4358
    current isNil ifTrue:[^ nil].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4359
    ('change:*' match:current) ifTrue:[
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4360
        ^ 'update:*'
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4361
    ].
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4362
    ^ nil
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4363
!
6593d7ee2f3e added skip until entering
Claus Gittinger <cg@exept.de>
parents: 2577
diff changeset
  4364
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4365
hasContextSelected
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4366
    ^ contextView hasSelection
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4367
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4368
    "Created: / 17.11.2001 / 19:57:03 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4369
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4370
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4371
ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4372
    ^ ignoreBreakpoints
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4373
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4374
    "Created: / 17.11.2001 / 18:20:16 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4375
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4376
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4377
inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4378
    ^ inspectedProcess 
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4379
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4380
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4381
interruptProcessWith:aBlock
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4382
    "let inspected process do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4383
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4384
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4385
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4386
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4387
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4388
    inspectedProcess interruptWith:aBlock.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4389
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4390
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4391
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4392
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4393
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4394
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4395
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4396
mayProceed:aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4397
    mayProceed := aBoolean
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4398
!
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  4399
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4400
processPerform:aMessage
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4401
    "do something, then update the context list"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4402
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4403
    inspectedProcess isDead ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4404
        self showTerminated.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4405
        ^ self
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4406
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4407
    inspectedProcess perform:aMessage.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4408
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4409
     give the process a chance to run, then update
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4410
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4411
    (Delay forSeconds:0.2) wait.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4412
    self setContext:(inspectedProcess suspendedContext).
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4413
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4414
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4415
redisplayBacktrace
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4416
    "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
  4417
     verbose-flag setting is changed"
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4418
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4419
    |oldSelection oldContext con idx|
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4420
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4421
    contextArray notNil ifTrue:[
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4422
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4423
            oldSelection := contextView selection.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4424
            oldSelection notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4425
                oldContext := contextArray at:oldSelection ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4426
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4427
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4428
            con := firstContext.
950
f1df338e6a78 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 949
diff changeset
  4429
"/            con := contextArray at:1.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4430
            "/ 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
  4431
            contextArray size > 0 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4432
                contextArray at:1 put:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4433
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4434
            self setContext:con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4435
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4436
            oldContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4437
                idx := oldSelection
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4438
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4439
                idx := contextArray identityIndexOf:oldContext ifAbsent:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4440
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4441
            contextView setSelection:idx.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4442
            idx notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4443
                self showSelection:idx
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4444
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4445
        ]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4446
    ]
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4447
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4448
    "Created: / 10.1.1997 / 21:36:46 / cg"
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  4449
    "Modified: / 21.5.1998 / 01:47:07 / cg"
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4450
!
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4451
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4452
selectedInterval
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  4453
    ^ codeView selectedInterval
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4454
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  4455
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4456
showError:message
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4457
    codeView contents:(resources string:message).
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4458
    shown ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4459
        exclusive ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4460
            "/ consider this a kludge:
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4461
            "/ if exclusive, cannot use flash, since it suspends
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4462
            "/ (but we cannot suspend here ...)
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4463
            codeView redrawInverted. device flush.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4464
            OperatingSystem millisecondDelay:200.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4465
            codeView redraw
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4466
        ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4467
            codeView flash
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4468
        ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4469
    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4470
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4471
    "Modified: / 18.11.2001 / 00:01:13 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4472
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4473
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4474
showTerminated
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4475
    self showError:'** the process has terminated **'
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4476
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4477
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4478
showValue:aValue
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4479
    "/ TODO: show value in info field
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4480
    "/ Transcript showCR:aValue printString
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4481
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4482
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4483
stepping 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4484
    ^ stepping 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4485
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4486
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4487
unstep 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4488
    stepping := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4489
    bigStep := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4490
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4491
    exitAction := nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4492
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4493
    "Modified: 22.10.1996 / 11:59:57 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4494
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4495
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4496
updateContext
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4497
    |oldContext idx|
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4498
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4499
    inspectedProcess state == #dead ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4500
        self showTerminated.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4501
        ^ self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4502
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4503
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4504
    oldContext := selectedContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4505
    [
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4506
        (self setContextSkippingInterruptContexts:inspectedProcess suspendedContext) ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4507
            oldContext notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4508
                contextArray notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4509
                    idx := contextArray identityIndexOf:oldContext.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4510
                    idx ~~ 0 ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4511
                        self showSelection:idx
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4512
                    ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4513
                        codeView contents:('** context returned **')
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4514
                    ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4515
                ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4516
            ]
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4517
        ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4518
    ] valueUninterruptably.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4519
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4520
    "Modified: 20.10.1996 / 18:11:24 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4521
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4522
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4523
!DebugView methodsFor:'private queries'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4524
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4525
isAborting
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4526
    ^ exitAction == #abort
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4527
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4528
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4529
setOfHiddenCallingSelectors
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4530
    ^ setOfHiddenCallingSelectors ? #( #'doIt' #'doIt:' )
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4531
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4532
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4533
setOfHiddenCallingSelectors:aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4534
    setOfHiddenCallingSelectors := aCollectionOfSymbols
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4535
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4536
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4537
!DebugView methodsFor:'private-cache handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4538
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4539
cacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4540
    "remember myself for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4541
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4542
    "caching the last debugger will make the next debugger appear
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4543
     faster, since no resources have to be allocated in the display.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4544
     We have to be careful to release all refs to the debuggee, though.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4545
     Otherwise, the GC will not be able to release it."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4546
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4547
    windowGroup notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4548
        windowGroup setProcess:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4549
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4550
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4551
    self releaseDebuggee.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4552
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4553
    cachable ~~ true ifTrue:[^ self].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4554
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4555
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4556
    "/ only cache if I am on the Display
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4557
    "/
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4558
    device == Display ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4559
        exclusive ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4560
            CachedExclusive := self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4561
        ] ifFalse:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4562
            CachedDebugger := self
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4563
        ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4564
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4565
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4566
    ObjectMemory stepInterruptHandler == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4567
        ObjectMemory stepInterruptHandler:nil
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4568
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4569
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4570
    "Modified: 10.7.1997 / 15:50:46 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4571
    "Modified: 31.7.1997 / 21:20:14 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4572
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4573
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4574
isCached
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4575
    "tell wether we are a cached debugger"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4576
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4577
    CachedExclusive == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4578
        ^ true.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4579
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4580
    CachedDebugger == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4581
        ^ true.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4582
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4583
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4584
    ^ false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4585
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4586
    "Created: 10.7.1997 / 15:22:43 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4587
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4588
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4589
releaseDebuggee
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4590
    "We have to be careful to release all refs to the debuggee,
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4591
     because we may be in the cache.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4592
     Otherwise, the GC will not be able to release it"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4593
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4594
    busy := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4595
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4596
    codeView acceptAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4597
    codeView doItAction:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4598
    codeView contents:nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4599
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4600
    receiverInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4601
    contextInspector release.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4602
    inspectedProcess := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4603
    contextArray := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4604
    selectedContext := actualContext := firstContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4605
    steppedContext := wrapperContext := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4606
    catchBlock := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4607
    grabber := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4608
    self autoUpdateOff.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4609
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4610
    "Created: / 10.7.1997 / 14:57:51 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4611
    "Modified: / 10.7.1997 / 15:50:38 / stefan"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4612
    "Modified: / 17.11.2001 / 22:58:17 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4613
!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4614
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4615
uncacheMyself
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4616
    "do not remember myself any longer for next debug session"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4617
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4618
    cachable := false.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4619
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4620
    CachedExclusive == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4621
        CachedExclusive := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4622
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4623
    CachedDebugger == self ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4624
        CachedDebugger := nil.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4625
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4626
    OpenDebuggers notNil ifTrue:[
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4627
        OpenDebuggers remove:self ifAbsent:[].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4628
    ].
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4629
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4630
    "Modified: 31.7.1997 / 21:20:11 / cg"
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4631
! !
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4632
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4633
!DebugView methodsFor:'private-context handling'!
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4634
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4635
setContext:aContext
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4636
    "show calling chain from aContext in the walk-back listview"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4637
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4638
    ^ 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
  4639
641
e02a521493ba checkin from browser
Claus Gittinger <cg@exept.de>
parents: 628
diff changeset
  4640
    "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
  4641
!
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4642
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4643
setContext:aContext releaseInspectors:releaseInspectors
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4644
    "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
  4645
     Most complications here arise from filtering less-interesting contexts
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4646
     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
  4647
3702
cfbc382adfbe remove unused vars
Stefan Vogel <sv@exept.de>
parents: 3701
diff changeset
  4648
    |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
  4649
     suspendContext calledBySuspendContext nm h calledContext|
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4650
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4651
    (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
  4652
        "no change"
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4653
        ^ false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4654
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4655
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4656
    firstContext := aContext.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4657
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4658
    m := contextView middleButtonMenu.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4659
    m notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4660
        m disable:#showMore.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4661
    ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4662
    canShowMore := false.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4663
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4664
    aContext isNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4665
        text := Array with:'** no context **'.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4666
        contextArray := nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4667
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4668
        text := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4669
        contextArray := OrderedCollection new:nChainShown.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4670
        con := aContext.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4671
        calledContext := nil.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4672
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4673
        verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4674
            "/ with dense backtrace, hide the ProcessorScheduler
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4675
            "/ contexts at the top; look for a Process>>suspend*
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4676
            "/ context within the first 10 contexts
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4677
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4678
            suspendContext := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4679
            c := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4680
            1 to:10 do:[:i |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4681
                |sel|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4682
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4683
                c notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4684
                    (sel := c selector) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4685
                        ((sel isSymbol and:[sel startsWith:'suspend'])
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4686
                        and:[c receiver isMemberOf:Process]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4687
                            suspendContext := c.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4688
                            calledBySuspendContext := cc.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4689
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4690
                    ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4691
                    cc := c.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4692
                    c := c sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4693
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4694
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4695
            suspendContext notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4696
                con := suspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4697
                calledContext := calledBySuspendContext.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4698
                suspendContext := nil
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4699
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4700
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4701
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4702
        verboseBacktrace ~~ true ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4703
            con notNil ifTrue:[    
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4704
                "/ hide the halt implementation
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4705
                (#(halt halt:) includes:con selector) ifTrue:[
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4706
                    con method mclass == Object ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4707
                        calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4708
                        con := con sender.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4709
                    ]
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4710
                ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4711
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4712
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4713
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4714
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4715
         get them all
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4716
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4717
        count := 0.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4718
        [con notNil and:[count <= nChainShown]] whileTrue:[
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4719
            [ 
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4720
                DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4721
                    'showingContext1: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4722
                    ') --> ' print. (self showingContext1:con calling:calledContext) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4723
                ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4724
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4725
                self showingContext1:con calling:calledContext
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4726
            ] whileFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4727
                calledContext := con.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4728
                con := con sender.
2720
a756bd875d02 more filtering of uninteresting contexts
Claus Gittinger <cg@exept.de>
parents: 2709
diff changeset
  4729
            ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4730
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4731
            DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4732
                'showingContext2: (' print. con print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4733
                ') --> ' print. (self showingContext2:con nesting:count) printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4734
            ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4735
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4736
            (self showingContext2:con nesting:count) ifTrue:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4737
                "/ ignore it, if its in the same
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4738
                "/ method as the previous context
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4739
"/                (verboseBacktrace ~~ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4740
"/                and:[count > 0 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4741
"/                and:[contextArray last method == con method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4742
"/                and:[(contextArray last isBlockContext not 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4743
"/                     & con isBlockContext not) not ]]]) ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4744
"/                    "/ skip it, if its in the same method
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4745
"/                    "/ as the called context.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4746
"/                ] ifFalse:[
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4747
                    contextArray add:con.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4748
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4749
                    (MoreDebuggingDetail == true) ifTrue:[
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4750
                        nm := (((ObjectMemory addressOf:con) printStringRadix:16) , ' ' , con printString).
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4751
                    ] ifFalse:[
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4752
                        Error 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4753
                            handle:[:ex | nm := '???' ] 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4754
                            do:[ 
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4755
                                nm := self contextListEntryFor:con.
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4756
                            ].
1646
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4757
                    ].
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4758
                    text add:nm.
4a903cd4507e better context-hiding
Claus Gittinger <cg@exept.de>
parents: 1624
diff changeset
  4759
                    count := count + 1.
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4760
"/                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4761
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4762
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4763
            "/
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4764
            "/ kludge: if its a wrapped method, then hide the wrap-call
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4765
            "/
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4766
            method := con method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4767
            (method notNil and:[method isWrapped]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4768
                called := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4769
                caller := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4770
                (caller notNil and:[caller receiver == method originalMethod]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4771
                    called2 := caller.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4772
                    caller2 := caller sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4773
                    (caller2 notNil and:[caller2 method == method]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4774
                        calledContext := called2.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4775
                        con := caller2
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4776
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4777
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4778
                caller := caller2 := nil
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4779
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4780
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4781
            "/ with dense backtrace, skip the doIt methods context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4782
            "/ (its dummy anyway) and fake that contexts name
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4783
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4784
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4785
                (con isBlockContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4786
                 and:[(h := con home) == con sender
7843
7e4538e4c2cf changed #setContext:releaseInspectors: take care of nil home context
Stefan Vogel <sv@exept.de>
parents: 7830
diff changeset
  4787
                 and:[h notNil
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4788
                 and:[(self setOfHiddenCallingSelectors includes:h selector)
7843
7e4538e4c2cf changed #setContext:releaseInspectors: take care of nil home context
Stefan Vogel <sv@exept.de>
parents: 7830
diff changeset
  4789
                 and:[h method who isNil]]]]) ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4790
                    calledContext := con.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4791
                    con := con sender.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4792
                    text removeLast.
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4793
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4794
                    text add:(self contextListEntryFor:con methodHome).
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4795
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4796
                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
  4797
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4798
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4799
            "/ with dense backtrace, dont show below the doIt
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4800
            ( verboseBacktrace ~~ true
6622
cf89940b5d30 configurable set of hidden selectors
Claus Gittinger <cg@exept.de>
parents: 6616
diff changeset
  4801
            and:[ (self setOfHiddenCallingSelectors includes:con selector) ]) ifTrue:[
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4802
                con := nil.  
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4803
            ] ifFalse:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4804
                calledContext := con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4805
                con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  4806
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4807
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4808
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4809
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4810
         did we reach the end ?
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4811
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4812
        (con isNil or:[con sender isNil]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4813
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4814
            "/ the very last one is the startup context
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4815
            "/ (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
  4816
1906
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  4817
            (contextArray notEmpty
58200b8df8f7 check for empty contextArray
Claus Gittinger <cg@exept.de>
parents: 1871
diff changeset
  4818
            and:[contextArray last selector isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4819
                contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4820
                text removeLast
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4821
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4822
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4823
            verboseBacktrace ~~ true ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4824
                "/ in dense mode, remove the process startup
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4825
                "/ contexts (if any)
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4826
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  4827
                (contextArray size > 0
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  4828
                and:[(con := contextArray last) methodClass == Process]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4829
                    con selector == #start ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4830
                        contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4831
                        text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4832
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4833
                        [contextArray size > 0
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4834
                         and:[contextArray last methodHome == con]] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4835
                            contextArray removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4836
                            text removeLast.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4837
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4838
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4839
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4840
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4841
        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4842
            m notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4843
                m enable:#showMore.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4844
            ].
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  4845
            canShowMore := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4846
            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
  4847
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4848
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4849
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4850
    contextView setList:text.
944
680cc407240d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 942
diff changeset
  4851
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4852
    releaseInspectors ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4853
        receiverInspector release.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4854
        contextInspector release.
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4855
    ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4856
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4857
    m notNil ifTrue:[
6275
f7b6fd2c89d6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6247
diff changeset
  4858
        m disableAll:#(addBreakpoint removeBreakpoint browseImplementors browseSenders browseReceiversClass).
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4859
    ].
3511
1a050d6e639e menu fixes
Claus Gittinger <cg@exept.de>
parents: 3510
diff changeset
  4860
    self updateMenuItems.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4861
    ^ true
300
027ffcadd12d keep context in lower-right inspector when single stepping
Claus Gittinger <cg@exept.de>
parents: 299
diff changeset
  4862
7797
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4863
    "Created: / 14-12-1995 / 19:10:31 / cg"
b0bbe7932d47 nicer context presentation
Claus Gittinger <cg@exept.de>
parents: 7796
diff changeset
  4864
    "Modified: / 21-05-2007 / 13:31:02 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4865
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  4866
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4867
setContextSkippingInterruptContexts:aContext
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4868
    "show calling chain from aContext in the walk-back listview.
1213
Claus Gittinger <cg@exept.de>
parents: 1187
diff changeset
  4869
     Ignore any non-interesting interrupt-context."
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4870
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4871
    |con|
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4872
8152
4720caf862eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8148
diff changeset
  4873
    con := aContext.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4874
    verboseBacktrace ifFalse:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4875
        (con notNil and:[con selector == #threadSwitch:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4876
            con := con sender.
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4877
            (con notNil and:[con selector == #timerInterrupt]) ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4878
                con := con sender.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4879
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  4880
        ].
779
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4881
    ].
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4882
    ^ self setContext:con releaseInspectors:true
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4883
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4884
    "Created: / 20.10.1996 / 18:10:21 / cg"
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  4885
    "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
  4886
!
0486301b79a1 use a single button for stop/continue;
Claus Gittinger <cg@exept.de>
parents: 778
diff changeset
  4887
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4888
showingContext1:aContext calling:calledContext
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4889
    "return false, if this (top) context is to be skipped.
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4890
     Here, we hide some well known methods, which are usually not too interesting; 
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4891
     the set of methods which are suppressed is my (claus's) own choice."
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4892
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4893
    |recIsException sel rec senderRec mthd mthdClass calledSel calledRec|
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4894
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4895
    verboseBacktrace == true ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4896
    aContext isNil ifTrue:[ ^true ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4897
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4898
    sel := aContext selector.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4899
    rec := aContext receiver.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4900
    mthd := aContext method.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4901
    mthd notNil ifTrue:[ mthdClass := mthd mclass ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4902
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4903
    "/ 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
  4904
    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
  4905
    aContext sender notNil ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4906
        senderRec := aContext sender receiver
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4907
    ].
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4908
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4909
    DebuggingDebugger == true ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4910
        'showingContext1: (' print. aContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4911
        ') calling: (' print. calledContext print.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4912
        ')' printCR.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4913
    ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4914
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4915
    (#(doCallHandler: doRaise
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4916
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4917
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4918
            recIsException ifTrue:[ ^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4919
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4920
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4921
    (#(raise raiseRequest
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4922
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4923
        ifTrue:[
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4924
            recIsException ifTrue:[
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4925
                (senderRec isLazyValue not 
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4926
                and:[ senderRec isExceptionCreator]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4927
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4928
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4929
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4930
    (#(doWhile:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4931
    ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4932
        ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4933
            rec isBlock ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4934
                aContext sender isBlockContext ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4935
            ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4936
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4937
5349
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4938
"/    calledContext notNil ifTrue:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4939
"/        calledSel := calledContext selector.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4940
"/        calledRec := calledContext receiver.
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4941
"/        calledRec isLazyValue ifFalse:[
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4942
"/            ((calledSel == #doWhile:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4943
"/            and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4944
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4945
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4946
"/            ((#(ensure: ifCurtailed: valueNowOrOnUnwindDo: valueOnUnwindDo:   
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4947
"/                ) includes:calledSel)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4948
"/             and:[calledRec isBlock])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4949
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4950
"/
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4951
"/            ((calledSel == #handle:do:)
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4952
"/             and:[calledRec isExceptionHandler])
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4953
"/                ifTrue:[^ false].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4954
"/        ].
64e779c7b08b fixed stepping through ensure: blocks
Claus Gittinger <cg@exept.de>
parents: 5340
diff changeset
  4955
"/    ].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4956
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4957
    (#(handleDo:) includes:sel)
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4958
        ifTrue:[ 
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  4959
            (calledRec isLazyValue not and:[calledRec isExceptionHandler]) ifTrue:[^ false].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4960
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4961
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4962
        withCursor:do:
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4963
        withWaitCursorDo:
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4964
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4965
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4966
            (mthdClass == TopView) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4967
            (mthdClass == ApplicationModel) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4968
            (mthdClass == WindowGroup) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4969
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4970
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4971
    (#( 
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4972
        wait
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4973
      ) includes:sel)
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4974
        ifTrue:[ 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4975
            (mthdClass == Semaphore) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4976
            (mthdClass == SemaphoreSet) ifTrue:[^ false].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4977
        ].
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4978
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4979
    ^ true
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4980
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4981
    "Created: / 17.11.2001 / 22:24:06 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4982
    "Modified: / 17.11.2001 / 22:41:42 / cg"
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4983
!
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4984
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4985
showingContext2:aContext nesting:nesting
7823
9caa05596f38 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7822
diff changeset
  4986
    "return false, if this (intermediate) context is to be skipped.
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  4987
     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
  4988
     not too interesting; 
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  4989
     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
  4990
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4991
    |sel rec mClass 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  4992
     sender senderReceiver senderSelector senderReceiverClass|
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4993
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4994
    verboseBacktrace ifTrue:[^ true].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  4995
    aContext isNil ifTrue:[^ true].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4996
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4997
    rec := aContext receiver.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  4998
    sel := aContext selector.
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  4999
    mClass := aContext methodClass.
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5000
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5001
    sender := aContext sender.
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5002
    sender notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5003
        senderSelector := sender selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5004
        senderReceiver := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5005
        senderReceiverClass := senderReceiver class.
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5006
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5007
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5008
    sel == #withCursor:do: ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5009
        (mClass == WindowGroup) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5010
        (mClass == TopView) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5011
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5012
    (sel == #withExecuteCursorDo:
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5013
    or:[sel == #withWaitCursorDo:]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5014
        (mClass == DisplaySurface) ifTrue:[^ false].
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5015
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5016
1484
1e1e56b84b11 in compact-stack-mode, also hide from:to:do: contexts.
Claus Gittinger <cg@exept.de>
parents: 1456
diff changeset
  5017
    (sel == #do:
6600
985a13c5e7b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6579
diff changeset
  5018
    or:[sel == #from:to:do:
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5019
    or:[sel == #keysAndValuesDo:
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5020
    or:[sel == #doWithIndex:]]]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5021
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5022
        mClass == OrderedCollection ifTrue:[^ false].
6601
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5023
        mClass == Set ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5024
        mClass == Dictionary ifTrue:[^ false].
b347199a06cb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6600
diff changeset
  5025
        mClass == Interval ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5026
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5027
    (sel == #perform: 
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5028
    or:[sel == #perform:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5029
    or:[sel == #perform:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5030
    or:[sel == #perform:with:with:with:
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5031
    or:[sel == #perform:with:with:with:with:]]]])
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5032
    ifTrue:[
1499
6ed7024b9929 show a perform: context, if its the top-one.
Claus Gittinger <cg@exept.de>
parents: 1486
diff changeset
  5033
        nesting == 0 ifTrue:[^ true].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5034
        mClass == Array ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5035
        mClass == OrderedCollection ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5036
    ].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5037
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5038
    sel == #valueWithReceiver:arguments:selector:search:sender: ifTrue:[^ false].
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5039
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5040
    (mClass == Object) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5041
        (sel startsWith:'perform:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5042
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5043
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5044
    (mClass == Method) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5045
        (sel startsWith:'valueWithReceiver:') ifTrue:[^ false]
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5046
    ].
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5047
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5048
    (mClass == SmallInteger) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5049
        (sel == #to:do:) ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5050
        (sel == #to:by:do:) ifTrue:[^ false].
952
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5051
    ].
9f203aab32a4 skip intermediate lazyMethod loading contexts
Claus Gittinger <cg@exept.de>
parents: 950
diff changeset
  5052
939
0e700c9bd085 better dense backtrace
Claus Gittinger <cg@exept.de>
parents: 937
diff changeset
  5053
    (mClass == Block) ifTrue:[
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5054
        sel == #ensure: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5055
        sel == #ifCurtailed: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5056
        sel == #valueNowOrOnUnwindDo: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5057
        sel == #valueOnUnwindDo: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5058
        sel == #on:do: ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5059
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5060
        sel == #value ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5061
        sel == #value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5062
        sel == #value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5063
        sel == #value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5064
        sel == #value:value:value:value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5065
        sel == #value:value:value:value:Value: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5066
        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
  5067
    ].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5068
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5069
    aContext isBlockContext ifTrue:[
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5070
"/        sel == #value ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5071
"/        sel == #value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5072
"/        sel == #value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5073
"/        sel == #value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5074
"/        sel == #value:value:value:value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5075
"/        sel == #value:value:value:value:Value: ifTrue:[^ false].
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5076
"/        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
  5077
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5078
"/        (senderSelector == #answer:do:) ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5079
"/            senderReceiverClass == QuerySignal ifTrue:[
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5080
"/                ^ false
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5081
"/            ]
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5082
"/        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5083
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5084
        aContext home notNil ifTrue:[
5271
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5085
            aContext home receiver isLazyValue ifFalse:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5086
                (aContext home receiver isMemberOf:Semaphore) ifTrue:[
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5087
                    (aContext home selector == #wait) ifTrue:[^ false]
d7800a8994b7 avoid triggering lazy values
Claus Gittinger <cg@exept.de>
parents: 5269
diff changeset
  5088
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5089
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5090
        ]
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5091
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5092
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5093
    (rec isExceptionHandler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5094
        sel == #handle:do: ifTrue:[^ false].
3723
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5095
        sel == #handleDo: ifTrue:[^ false].
250da8f1a968 Treat new #ensure, #ifCurtailed, #on:do:
Stefan Vogel <sv@exept.de>
parents: 3702
diff changeset
  5096
        (sel startsWith:#raise) ifTrue:[^ false].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5097
        sel == #answer:do: ifTrue:[^ false].
1388
d127d4379a60 more contexts suppressed in dense-backtrace
Claus Gittinger <cg@exept.de>
parents: 1386
diff changeset
  5098
    ].
5269
a8be1af4cd35 avoid triggering lazy and future values when showing the context.
Claus Gittinger <cg@exept.de>
parents: 5195
diff changeset
  5099
    (rec isLazyValue not and:[ rec isException] ) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5100
        sel == #doRaise ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5101
        sel == #doCallHandler: ifTrue:[^ false].
2312
86cf257b86d6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2309
diff changeset
  5102
        (sel == #raise or:[sel == #raiseRequest]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5103
            senderReceiverClass == Signal ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5104
        ]
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5105
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5106
    (mClass == Context) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5107
        sel == #unwind ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5108
        sel == #unwind: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5109
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5110
    (mClass == ProcessorScheduler) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5111
        sel == #interruptActive ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5112
        sel == #threadSwitch: ifTrue:[^ false].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5113
        sel == #suspend: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5114
    ].
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5115
    mClass == Process ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5116
        sel == #suspendWithState: ifTrue:[^ false].
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5117
    ].
936
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5118
    ^ true.
34f8d67c4932 allow dense & verbose context-chain display.
Claus Gittinger <cg@exept.de>
parents: 935
diff changeset
  5119
1394
7765db9114ff more context hiding in dense-walkback mode
Claus Gittinger <cg@exept.de>
parents: 1388
diff changeset
  5120
    "Modified: / 15.1.1998 / 19:47:36 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5121
    "Created: / 17.11.2001 / 19:34:20 / cg"
1240
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5122
! !
ff3fdaa72df6 In #destroy CodeView>>contents: has been called and caused a
Stefan Vogel <sv@exept.de>
parents: 1213
diff changeset
  5123
4859
462e871755e0 method category rename
Claus Gittinger <cg@exept.de>
parents: 4816
diff changeset
  5124
!DebugView methodsFor:'private-control loop'!
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5125
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5126
controlLoop
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5127
    "this is a kludge:
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5128
        start a dispatchloop which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5129
        either continue, return or step is pressed
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5130
    "
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5131
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5132
    haveControl := true.
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5133
    [
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5134
        [haveControl] whileTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5135
            self controlLoopCatchingErrors
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5136
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3593
diff changeset
  5137
    ] ensure:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5138
        catchBlock := nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5139
        haveControl := false
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5140
    ].
664
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5141
f5e2b3767ea8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 657
diff changeset
  5142
    "Modified: 9.7.1996 / 18:29:09 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5143
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5144
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5145
controlLoopCatchingErrors
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5146
    "this is the debuggers own private event handling loop;
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5147
     errors are caught, to prevent recursive debugger-invocations."
328
bdfe5bbd376d ignore recursive BreakPoint invocations
Claus Gittinger <cg@exept.de>
parents: 317
diff changeset
  5148
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5149
    "setup a self removing catch-block"
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5150
    catchBlock := [catchBlock := nil. ^ nil].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5151
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5152
    (exclusive or:[windowGroup isNil]) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5153
        "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
  5154
         we start another dispatch loop, which exits when
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5155
         either continue, return or step is pressed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5156
         or (via the catchBlock) if an error occurs.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5157
         Since our display is an extra exclusive one, 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5158
         all processing for normal views stops here ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5159
        "
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
        WindowGroup setActiveGroup:windowGroup.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5162
        SignalSet anySignal handle:[:ex |
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5163
            |signal|
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5164
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5165
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5166
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5167
            self showError:'*** Error in modal debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5168
334
00d06ac75a99 handle notifications without err'ing
ah
parents: 333
diff changeset
  5169
>>>> Signal:  ' , signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5170
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5171
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5172
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5173
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5174
>>>>     :    ' , 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
  5175
>>>>     :    ' , 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
  5176
>>>>     :    ' , 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
  5177
>>>>     :    ' , 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
  5178
>>>>     :    ' , 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
  5179
>>>>     :    ' , 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
  5180
>>>>     :    ' , 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
  5181
>>>>     :    ' , 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
  5182
>>>>     :    ' , 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
  5183
>>>>     :    ' , 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
  5184
>>>>     :    ' , 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
  5185
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5186
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5187
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5188
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5189
        ] do:[
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5190
            UserNotification handle:[:ex |
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5191
                (ex signal == ActivityNotificationSignal) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5192
                    ex proceed
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5193
                ].
6361
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5194
                self showError:ex description.
d1145c85e0fb oops - must proceed after catching a UserNotification
Claus Gittinger <cg@exept.de>
parents: 6275
diff changeset
  5195
                ex proceed.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5196
            ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5197
                device dispatchModalWhile:[Processor activeProcess state:#debug.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5198
                                           haveControl].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5199
            ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5200
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5201
        WindowGroup setActiveGroup:nil.
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5202
    ] ifFalse:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5203
        "we do have multiple processes -
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5204
         simply enter the DebugViews-Windowgroup event loop.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5205
         effectively suspending event processing for the currently 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5206
         active group.
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
        SignalSet anySignal handle:[:ex |
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5209
            |answer signal eMsg|
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5210
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5211
            signal := ex signal.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5212
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5213
            DebuggingDebugger ~~ true ifTrue:[
6172
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5214
                (signal == ActivityNotification) ifTrue:[
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5215
                    ex proceed
4b5bbc9c49d1 Use class based exceptions.
Stefan Vogel <sv@exept.de>
parents: 6171
diff changeset
  5216
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5217
                "/
7888
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5218
                "/ ignore exceptions which say they explicitly have to be ignored
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5219
                "/
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5220
                ex catchInDebugger ifTrue:[
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5221
                    'DebugView [info]: ',signal printString,'-signal in debugger cought for close' infoPrintCR.
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5222
                    self destroy.   
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5223
                    ex reject
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5224
                ].
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5225
ce75b0668408 +catchInDebugger
ca
parents: 7862
diff changeset
  5226
                "/
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5227
                "/ ignore recursive breakpoints
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5228
                "/
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5229
                (signal isControlInterrupt) ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5230
                    ignoreBreakpoints == true ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5231
                        '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
  5232
                        ex proceed
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5233
                    ].
1762
cd2bec8238fa ignare halts while handling my own events.
Claus Gittinger <cg@exept.de>
parents: 1753
diff changeset
  5234
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5235
                (signal == TerminateProcessRequest) ifTrue:[
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5236
                    "/ mhm - someone wants to shoot me down while debugging ...
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5237
                    answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5238
                                choose:('Process termination signal arrived while debugging\\close debugger ?') withCRs
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5239
                                labels:#( 'Ignore' 'Close & terminate' ) 
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5240
                                values:#( #proceed #close ) 
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5241
                                default:#close.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5242
                    answer == #close ifTrue:[
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5243
                        self destroy.   
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5244
                        ex reject
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5245
                    ].
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5246
                    ex return.
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5247
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5248
                signal == RecursiveExceptionError ifTrue:[
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5249
                    (ex parameter signal == BreakPointInterrupt)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5250
                    ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5251
                        'DebugView [info]: recursive breakpoint in debugger ignored' infoPrintCR.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5252
                        ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5253
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5254
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5255
                    self showError:'*** Recursive error in debugger:
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5256
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5257
>>>> Signal:  ' , ex signal printString , '
448
e50e23ae7dc3 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 430
diff changeset
  5258
>>>>          ' , ex parameter signal printString , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5259
>>>> In:      ' , ex suspendedContext printString , '
1016
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5260
>>>> From:    ' , ex suspendedContext sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5261
>>>>     :    ' , ex suspendedContext sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5262
>>>>     :    ' , ex suspendedContext sender sender sender printString , '
59ebb6068892 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1004
diff changeset
  5263
>>>>     :    ' , ex suspendedContext sender sender sender sender printString , '
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5264
>>>> Message: ' , ex description , '
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5265
1187
Claus Gittinger <cg@exept.de>
parents: 1179
diff changeset
  5266
caught & ignored.'.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5267
                    ex return
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5268
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5269
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5270
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5271
            self topView raiseDeiconified.    
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5272
4816
08695fc6e1e9 #errorSignal -> #description
Stefan Vogel <sv@exept.de>
parents: 4676
diff changeset
  5273
            eMsg := ex description.
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5274
            (ex signal isControlInterrupt) ifTrue:[
2589
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5275
                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
  5276
            ].
2342403139a7 extract selector from selection (as in browser)
Claus Gittinger <cg@exept.de>
parents: 2581
diff changeset
  5277
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5278
            answer := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5279
                        choose:('Error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs) 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5280
                        labels:#( 'Proceed' 'Cancel' 'Debug' ) 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5281
                        values:#( #proceed #cancel #debug ) 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5282
                        default:#cancel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5283
            answer == #debug ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5284
                'DebugView [info]: cought exception - debugging' infoPrintCR.
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5285
                Debugger 
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5286
                    enterUnconditional:(ex suspendedContext) 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5287
                    withMessage:'Error in debugger: ' , eMsg
2317
c2000833c86d care mayProceed information.
Claus Gittinger <cg@exept.de>
parents: 2313
diff changeset
  5288
                    mayProceed:true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5289
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5290
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5291
            answer == #proceed ifTrue:[
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5292
                'DebugView [info]: ignored exception - proceeding' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5293
                ex proceed.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5294
            ].
2445
acd747458906 allow for breaks/halts in doIts to be optionally
Claus Gittinger <cg@exept.de>
parents: 2433
diff changeset
  5295
            'DebugView [info]: cought exception - returning' infoPrintCR.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5296
            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5297
        ] do:[
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5298
            "/ make certain that sub-debuggers, inspectors etc.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5299
            "/ come up on my device.
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5300
            Screen currentScreenQuerySignal answer:device
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5301
            do:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5302
                windowGroup 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5303
                    eventLoopWhile:[Processor activeProcess state:#debug.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5304
                                      true] 
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5305
                    onLeave:[]
2358
81472caab073 comment
Claus Gittinger <cg@exept.de>
parents: 2355
diff changeset
  5306
            ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5307
        ].
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5308
    ].
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5309
    catchBlock := nil.
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5310
1409
2ea39caf7f00 handle process termination gracefully
Claus Gittinger <cg@exept.de>
parents: 1408
diff changeset
  5311
    "Created: / 24.11.1995 / 20:33:45 / cg"
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5312
    "Modified: / 18.11.2001 / 01:04:17 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5313
! !
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5314
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5315
!DebugView methodsFor:'user interaction'!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5316
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5317
checkIfCodeIsReallyModified
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5318
    |source|
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5319
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5320
    codeView modified ifFalse:[^ false].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5321
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5322
    currentMethod isNil ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5323
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5324
    ].
6616
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5325
    source := currentMethod source.
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5326
    source notNil ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5327
        source string = codeView contents string ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5328
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5329
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5330
        (source string withTabsExpanded:8) = (codeView contents string withTabsExpanded:8) ifTrue:[
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5331
            ^ false
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5332
        ].
b8c6a5cf6522 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6601
diff changeset
  5333
    ].
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5334
    ^ true
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5335
!
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5336
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5337
checkSelectionChangeAllowed
2678
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5338
    ^ self checkSelectionChangeAllowed:nil
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5339
!
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5340
90eb8be47ac4 avoid annoying modified-code dialog when reselecting the same
Claus Gittinger <cg@exept.de>
parents: 2633
diff changeset
  5341
checkSelectionChangeAllowed:newSelection
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5342
    self checkIfCodeIsReallyModified ifFalse:[^ true].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5343
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5344
    (newSelection notNil
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5345
    and:[newSelection = contextView selection]) ifTrue:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5346
        ^ true
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5347
    ].
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5348
3097
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5349
    (self confirm:('Code modified - change selection anyway ?')) ifFalse:[
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5350
        ^ false
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5351
    ].
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5352
    codeView modified:false.
dada585e916d really modfified test (in step, ...)
Claus Gittinger <cg@exept.de>
parents: 3094
diff changeset
  5353
1765
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5354
    ^ true
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5355
!
a704122c92dc confirm close/selection change if codeView was modified without
Claus Gittinger <cg@exept.de>
parents: 1764
diff changeset
  5356
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5357
codeAccept:someCode
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5358
    "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
  5359
     and including selected method cannot be continued."
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5360
7553
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5361
    ^ 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
  5362
83cbd8707d1e do not unwind after an accept.
Claus Gittinger <cg@exept.de>
parents: 7481
diff changeset
  5363
    "Modified: / 28-11-2006 / 19:49:04 / cg"
266
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5364
!
8645fbd8fdb7 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 243
diff changeset
  5365
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5366
codeAccept:someCode unwind:doUnwind category:givenCategoryOrNil onCancel:cancelAction
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5367
    "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
  5368
     and including selected method cannot be continued."
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5369
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5370
    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5371
     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
  5372
     executed correctly - however, the code shown in the debugger is no
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5373
     longer in sync (showing the new code) with the executed code.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5374
     Therefore, we hide those contexts to avoid confusion ....
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5375
     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
  5376
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5377
    "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
  5378
     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
  5379
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5380
    |con top sel implementorClass method newMethod category|
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5381
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5382
    codeView withWaitCursorDo:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5383
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5384
         find the method-home context for this one
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5385
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5386
        con := selectedContext.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5387
        top := con.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5388
        [con notNil] whileTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5389
            (con methodHome == selectedContext) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5390
                top := con
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5391
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5392
            con := con sender
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5393
        ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5394
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5395
        "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5396
         use class&selector to find the method for the compilation
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5397
         and compile.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5398
        "
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5399
        category := givenCategoryOrNil.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5400
        sel := selectedContext selector.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5401
        implementorClass := selectedContext methodClass.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5402
        implementorClass notNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5403
            category isNil ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5404
                method := implementorClass compiledMethodAt:sel.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5405
                category := method category    
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
        ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5408
            implementorClass := selectedContext receiver class.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5409
            implementorClass ~~ Object ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5410
                implementorClass := Dialog 
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5411
                                        request:('Define ''%1'' in class:' bindWith:sel allBold)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5412
                                        initialAnswer:implementorClass name
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5413
                                        list:(implementorClass withAllSuperclasses collect:[:each| each name]).
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5414
                implementorClass size == 0 ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5415
                    ^ cancelAction value "/ cancelled
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5416
                ].
3928
70d024aa8434 class from name fix
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  5417
                implementorClass := Smalltalk classNamed:implementorClass.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5418
                implementorClass isNil ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5419
                    Dialog warn:'No such class'.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5420
                    ^ cancelAction value "/ cancelled
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
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5424
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5425
        "/
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5426
        "/ provide the classes nameSpace on a query;
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5427
        "/ in case we accept while in another nameSpace context,
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5428
        "/ (but for a class which is somewhere else)
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5429
        "/
6818
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5430
        (Class updateChangeFileQuerySignal, 
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5431
         Class updateChangeListQuerySignal,
8f6c68046792 no history update unless done by user
Claus Gittinger <cg@exept.de>
parents: 6815
diff changeset
  5432
         Class updateHistoryLineQuerySignal) answer:true
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5433
        do:[
6171
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5434
            Class nameSpaceQuerySignal
5ea312ba7d88 Use SignalSets instead of nested handlers.
Stefan Vogel <sv@exept.de>
parents: 6136
diff changeset
  5435
            answer:(implementorClass nameSpace)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5436
            do:[
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5437
                Class packageQuerySignal
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5438
                answer:(implementorClass package ? Project noProjectID)
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5439
                do:[
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5440
                    codeView contents:someCode.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5441
                    newMethod := implementorClass compilerClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5442
                                     compile:someCode
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5443
                                     forClass:implementorClass
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5444
                                     inCategory:category
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5445
                                     notifying:codeView.
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5446
                ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5447
            ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5448
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5449
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5450
        inspecting ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5451
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5452
             if it worked, remove everything up to and including top
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5453
             from context chain
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5454
            "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5455
            (newMethod notNil and:[newMethod ~~ #Error]) ifTrue:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5456
                codeView modified:false.
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5457
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5458
                doUnwind ifTrue:[
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5459
                    selectedContext canReturn ifTrue:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5460
                        self setContext:(top "sender").
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5461
                        exitAction := #restart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5462
                        selectedContext setLineNumber:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5463
                        self doRestart.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5464
                    ] ifFalse:[
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5465
                        self setContext:(top sender).
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5466
                        exitAction := #return.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5467
                    ].
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5468
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5469
                    "
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5470
                     continue/step is no longer possible
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5471
                    "
4120
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5472
                    "/ continueButton disable.
2a91014b9d36 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4104
diff changeset
  5473
                    "/ canContinue := false.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5474
                ].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5475
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5476
                contextView selection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5477
                "/ self showSelection:1.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5478
                "/ contextView makeSelectionVisible. "/ scrollToLine:(selection - 1)
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5479
            ] ifFalse:[
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5480
                ^ cancelAction value
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5481
            ]
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5482
        ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5483
    ].
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5484
7065
a6e34a47f7fb accept in the debugger always assignes the classes'
Claus Gittinger <cg@exept.de>
parents: 7000
diff changeset
  5485
    "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
  5486
    "Modified: / 29-08-2006 / 14:22:22 / cg"
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5487
!
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5488
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5489
codeCompletion
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5490
    |cls|
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5491
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5492
    cls := currentMethod mclass.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5493
    cls isNil ifTrue:[
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5494
        ^ self.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5495
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5496
    UserInformation handle:[:ex |
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5497
        ex proceed.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5498
    ] do:[
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5499
        DoWhatIMeanSupport codeCompletionForClass:cls codeView:codeView.
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5500
    ].
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5501
!
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5502
3570
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5503
confirm:aString
6971
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5504
    "open a modal yes-no dialog.
ef52630187a5 comment
Claus Gittinger <cg@exept.de>
parents: 6849
diff changeset
  5505
     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
  5506
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5507
    (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
  5508
        ^ true
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5509
    ].
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5510
    ^ super confirm:aString.
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5511
!
da6d661593d8 Exclusive debugger (on top of scheduler process) is working again.
Stefan Vogel <sv@exept.de>
parents: 3542
diff changeset
  5512
1284
091454814297 try to catch more errors when showing sourceCode
Claus Gittinger <cg@exept.de>
parents: 1281
diff changeset
  5513
doShowSelection:lineNr
301
cd15cb77e4b6 show wait cursor while accessing sources (may take long with CVS)
Claus Gittinger <cg@exept.de>
parents: 300
diff changeset
  5514
    "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
  5515
     Also sent to autoselect an interesting context on entry."
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  5516
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5517
    BreakPointInterrupt handle:[:ex |
6215
fc3c3024cdfa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6178
diff changeset
  5518
        ignoreBreakpoints ifFalse:[ex reject].
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5519
        'DebugView [info]: breakpoint in debugger ignored [doShowSelection.]' infoPrintCR.
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5520
        ex proceed
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5521
    ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5522
        self updateForContext:lineNr
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5523
    ].
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5524
    self updateMenuItems
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5525
3447
f1a20a8ba485 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3441
diff changeset
  5526
    "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
  5527
!
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5528
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5529
hideStackInspector 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5530
    stackInspector notNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5531
        stackInspector destroy.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5532
        stackInspector := nil.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5533
        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
  5534
        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
  5535
    ]
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5536
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5537
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5538
processEvent:anEvent
6129
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5539
    "filter keyboard events for popUp variable value display.
4203bef24b27 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6046
diff changeset
  5540
     Return true, if I have eaten the event"
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5541
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5542
    |evView focusView key rawKey inCodeView|
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5543
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5544
    evView := anEvent view.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5545
    evView notNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5546
        focusView := evView windowGroup focusView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5547
        focusView isNil ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5548
            focusView := evView.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5549
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5550
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5551
        anEvent isKeyPressEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5552
            key := anEvent key.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5553
            rawKey := anEvent rawKey.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5554
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5555
            inCodeView := (focusView == codeView
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5556
                          or:[focusView isComponentOf:codeView]).
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5557
            inCodeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5558
                key == #CodeCompletion ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5559
                    "/ complete the word before/under the cursor.
7912
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5560
                    self sensor 
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5561
                        pushUserEvent:#codeCompletion 
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5562
                        for:self
3c7e853977b7 codeCompletion added
Claus Gittinger <cg@exept.de>
parents: 7888
diff changeset
  5563
                        withArguments:#().
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5564
                    ^ true
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5565
                ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5566
            ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5567
        ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5568
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5569
false ifTrue:[
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5570
        anEvent isButtonReleaseEvent ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5571
            anEvent view == codeView ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5572
                (RBParser notNil and:[RBParser isLoaded])
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5573
                ifTrue:[
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5574
                    self sensor 
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5575
                        pushEvent:anEvent.  "/ must be first in queue
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5576
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5577
                    self sensor
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5578
                      pushUserEvent:#explainSelection
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5579
                      for:self
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5580
                      withArguments:nil.
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5581
                    ^ true  "/ eaten
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5582
                ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5583
            ]
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5584
        ].
3602
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5585
].
2ba741dd596b avoid autoloading RBstuff
Claus Gittinger <cg@exept.de>
parents: 3597
diff changeset
  5586
3517
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5587
    ].
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5588
    ^ false
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5589
!
df36801b26b7 preps for flyBy-value-display
Claus Gittinger <cg@exept.de>
parents: 3511
diff changeset
  5590
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5591
showSelection:lineNr
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5592
    "user clicked on a header line - show selected code in textView.
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5593
     Also sent to autoselect an interesting context on entry."
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5594
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5595
    Notification 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5596
        handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5597
            [:ex |
5879
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5598
                "/ ex suspendedContext fullPrintAll.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5599
                Transcript showCR:ex description.
2e81afdc65cc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5875
diff changeset
  5600
                "/ Transcript showCR:ex parameter.
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5601
                ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5602
            ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5603
        do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5604
            [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5605
                Error 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5606
                    handle:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5607
                        [:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5608
                            |s con|
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5609
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5610
                            ex signal isControlInterrupt 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5611
                                ifTrue:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5612
                                    [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5613
                                        'DebugView [info]: halt/break ignored - while showing selection in debugger' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5614
                                        ex proceed
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5615
                                    ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5616
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5617
                            'DebugView [info]: error when showing selection in debugger ignored' infoPrintCR.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5618
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5619
                            s := '' writeStream.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5620
                            s nextPutLine:'**** error in debugger, while extracting source'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5621
                            s nextPutLine:'****'.
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5622
                            s nextPutAll: '**** '; nextPutLine:(ex description "withCRs").
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5623
                            s nextPutLine:'****'.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5624
                            con := ex suspendedContext.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5625
                            s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5626
                            con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5627
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5628
                            con fullPrintAllOn:s.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5629
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5630
"/                            [con notNil] whileTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5631
"/                                Error catch:[:ex |
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5632
"/                                    s nextPutAll: '**** '; nextPutLine:(con printString).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5633
"/                                ].
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5634
"/
5842
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5635
"/                                (con receiver == self and:[con selector == #'enter:select:']) ifTrue:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5636
"/                                    con := nil
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5637
"/                                ] ifFalse:[
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5638
"/                                    con := con sender.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5639
"/                                ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5640
"/                            ].
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5641
                            codeView contents:(s contents).
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5642
                            ex return.
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5643
                        ] 
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5644
                    do:
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5645
                        [
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5646
                            self doShowSelection:lineNr
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5647
                        ]
ed293abd4f21 notification handling
Claus Gittinger <cg@exept.de>
parents: 5821
diff changeset
  5648
            ]
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5649
6815
c04ba34e0ba0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6730
diff changeset
  5650
    "Modified: / 04-07-2006 / 14:50:06 / cg"
1327
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5651
!
c06a0c578e30 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1319
diff changeset
  5652
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5653
showStackInspectorFor:con 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5654
    stackInspector isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5655
        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
  5656
        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
  5657
        stackInspector := InspectorView 
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5658
                    origin:(0.6 @ 0.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5659
                    corner:(1.0 @ 1.0)
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5660
                    in:contextInspector superView.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5661
        stackInspector realize.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5662
        stackInspector fieldListLabel:'Stack'.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5663
        stackInspector hideReceiver:true
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5664
    ].
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5665
    stackInspector inspect:(con stackFrame asArray).
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5666
    stackInspector showLast
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5667
!
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5668
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5669
updateForContext:lineNr
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5670
    "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
  5671
     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
  5672
56
d0cb937cbcaa *** empty log message ***
claus
parents: 55
diff changeset
  5673
    |con homeContext sel method code canAccept
105
claus
parents: 101
diff changeset
  5674
     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
  5675
     sender selSender tryVars possibleBlocks errMsg 
3269
9566fbc92617 some refactoring;
Claus Gittinger <cg@exept.de>
parents: 3210
diff changeset
  5676
     codeSet highlighter evaluatorClass
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5677
     canDefine|
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5678
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5679
    canDefine := false.
1804
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5680
    currentMethod := nil.
dcb4f893ce7d remember current method - only ask for modification
Claus Gittinger <cg@exept.de>
parents: 1776
diff changeset
  5681
1309
f13dd58a3943 dont break if MessageTracer is not present
Claus Gittinger <cg@exept.de>
parents: 1302
diff changeset
  5682
    contextArray notNil ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5683
        lineNr <= contextArray size ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5684
            con := contextArray at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5685
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5686
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5687
         clicking on the '** ...'-line shows more ...
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5688
        "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5689
        con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5690
            line := contextView list at:lineNr.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5691
            (line startsWith:'**') ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5692
                self showMore.
1408
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5693
                lineNr >= contextArray size ifTrue:[
e96cd72d100a oops - care for non-existing line after showMore
Claus Gittinger <cg@exept.de>
parents: 1399
diff changeset
  5694
                    contextView setSelection:lineNr.
2299
3cadf0ee9d2e checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2258
diff changeset
  5695
                    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
  5696
                ]
1399
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
            con isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5699
                codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5700
                ^ self
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5701
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5702
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5703
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5704
        selectedContext := con.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5705
        m := contextView middleButtonMenu.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5706
        (m notNil and:[selectedContext notNil]) ifTrue:[
2577
14b7cc070a6b added implementorsOf and sendersOf menu functions
Claus Gittinger <cg@exept.de>
parents: 2554
diff changeset
  5707
            m enableAll:#(browseImplementors browseSenders inspectContext)
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5708
        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5709
1661
ba0ed1c5e137 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1646
diff changeset
  5710
        self withExecuteCursorDo:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5711
            codeSet := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5712
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5713
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5714
             give it to the (lower right) inspector
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5715
            "
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5716
            Error handle:[:ex |
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5717
                'DebugView [warning]: error while accessing context' errorPrintCR.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5718
                contextInspector inspect:nil.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5719
ex reject.
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5720
            ] do:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5721
                contextInspector inspect:con.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5722
                contextInspector tryToSelectKeyNamed:lastSelectionInContextInspector.
6247
74f3b2f6506d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6215
diff changeset
  5723
            ].
1386
55632b45ced2 more skipping in dense backtrace
Claus Gittinger <cg@exept.de>
parents: 1372
diff changeset
  5724
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5725
            "/ show a stack inspector sometimes
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5726
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5727
            con hasStackToShow ifTrue:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5728
                self showStackInspectorFor:con
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5729
            ] ifFalse:[
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5730
                self hideStackInspector
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5731
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5732
7328
30ae29195ebc avoid unneeded test
Stefan Vogel <sv@exept.de>
parents: 7112
diff changeset
  5733
            homeContext := con methodHome.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5734
            con canReturn ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5735
                returnButton enable. restartButton enable.
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
                returnButton disable. restartButton disable.
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
            lineNrInMethod := con lineNumber.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5741
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5742
            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5743
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5744
            homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5745
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5746
                 mhmh - an optimized block
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5747
                 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
  5748
                 that one ...
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5749
                 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
  5750
                 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
  5751
                 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
  5752
                 (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
  5753
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5754
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5755
                "temporary kludge - peek into the sender context.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5756
                 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
  5757
                 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
  5758
                 This helps in some cases.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5759
                "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5760
                (sender := con sender) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5761
                    tryVars := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5762
                    (selSender := sender selector) notNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  5763
                        ((selSender endsWith:'do:') or:[selSender endsWith:'Do:']) ifTrue:[
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5764
                            tryVars := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5765
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5766
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5767
                    tryVars ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5768
                        possibleBlocks := sender argsAndVars select:[:v | v isBlock].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5769
                        possibleBlocks := possibleBlocks select:[:b | b home isNil].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5770
                        possibleBlocks size == 1 ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5771
                            method := possibleBlocks first method.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5772
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5773
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5774
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5775
            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5776
                "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
  5777
                rec := homeContext receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5778
                sel := homeContext selector.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5779
                sel notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5780
                    canAccept := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5781
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5782
                    implementorClass := homeContext methodClass.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5783
                    implementorClass isNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  5784
                        Error handle:[:ex |
3432
087493c18c74 class based exceptions - no longer need to send #breakPointSígnal
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  5785
                            ex signal == BreakPointInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5786
                                ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5787
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5788
                            code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5789
                            code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5790
                            code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5791
                                
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5792
                            canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5793
                            ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5794
                        ] do:[
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
                             special: look if this context was created by
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5797
                             valueWithReceiver kind of method invocation;
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5798
                             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
  5799
                            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5800
                            ((sender := homeContext sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5801
                            and:[((sender selector ? '') startsWith:'valueWithReceiver:')
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5802
                            and:[sender receiver isMethod]]) ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5803
                                method := sender receiver.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5804
                                canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5805
                            ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5806
                                (method := con method) notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5807
                                    canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5808
                                ]
5664
c97684d07432 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5504
diff changeset
  5809
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5810
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5811
                    ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5812
                        method := implementorClass compiledMethodAt:sel.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5813
                    ].
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
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5816
            code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5817
                errMsg := nil.
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5818
                method isNil ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5819
                    "/ fall back heuristics
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5820
                    con isBlockContext ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5821
                        ((sender := con sender) notNil
4947
c600f7430132 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4932
diff changeset
  5822
                        and:[((sender selector ? '') startsWith:'value')
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5823
                        and:[sender receiver isBlock]]) ifTrue:[
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5824
                            code := sender receiver source.
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5825
                        ]
5170
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5826
                    ] ifFalse:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5827
                        ((sender := con sender) notNil
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5828
                        and:[((sender selector ? '') startsWith:'valueWith')
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5829
                        and:[sender receiver isMethod]]) ifTrue:[
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5830
                            method := sender receiver.
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5831
                        ]
ff0a0819503d showing the source of a called method
Claus Gittinger <cg@exept.de>
parents: 5117
diff changeset
  5832
                    ]
4932
0758cd0b8ce9 show source of blocks if possible
Claus Gittinger <cg@exept.de>
parents: 4892
diff changeset
  5833
                ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5834
                method notNil ifTrue:[
4644
e6dd5c21b9c0 Convert Object>>errorSignal -> Error
Stefan Vogel <sv@exept.de>
parents: 4356
diff changeset
  5835
                    Error handle:[:ex |
3431
19dbcd369dbf use isControlInterrupt
Claus Gittinger <cg@exept.de>
parents: 3429
diff changeset
  5836
                        ex signal isControlInterrupt ifTrue:[
2397
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5837
                            ex proceed.
c69f3a695464 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2376
diff changeset
  5838
                        ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5839
                        code := 'error while asking method for its source'.
2258
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5840
                        code := code , Character cr , ex signal printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5841
                        code := code , Character cr , 'in: ' , ex suspendedContext printString.
4c9000113db6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
  5842
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5843
                        canAccept := false.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5844
                        ex return.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5845
                    ] do:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5846
                        self sensor shiftDown ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5847
                            code := method decompiledSource
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5848
                        ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5849
                            code := method source.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5850
                        ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5851
                    ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5852
                    code isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5853
                        method sourceFilename notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5854
                            codeView contents:(resources 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5855
                                                       string:'** no sourcefile: %1 **'
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5856
                                                       with:method sourceFilename).
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5857
                            codeView flash.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5858
                            codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5859
                        ] ifFalse:[
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5860
                            [
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5861
                                |src|
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5862
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5863
                                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
  5864
                                codeView contents:src.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5865
                                codeSet := true.
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5866
                            ] on: Error do:[
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5867
                                errMsg := '** no source **'
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  5868
                            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5869
                        ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5870
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5871
                ] ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5872
                    homeContext isNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5873
                        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
  5874
                    ] ifFalse:[
3187
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5875
                        errMsg := '** no method - no source **'.
3d8f1bbf585b added define-Button
Claus Gittinger <cg@exept.de>
parents: 3165
diff changeset
  5876
                        canDefine := true.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5877
                    ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5878
                ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5879
                errMsg notNil ifTrue:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5880
                   self showError:errMsg.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5881
                   codeSet := true.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5882
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5883
            ].
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
            code isNil ifTrue:[
3121
4cb4b3a3c1e2 allow accepting after a doesnot understand
Claus Gittinger <cg@exept.de>
parents: 3097
diff changeset
  5886
                "/ canAccept := false.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5887
                codeSet ifFalse:[
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5888
                    codeView contents:nil.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5889
                ]
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5890
            ] ifFalse:[
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5891
                lineNrInMethod == 0 ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5892
                    (method notNil and:[method isJavaMethod]) ifTrue:[
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5893
                        lineNrInMethod := method lineNumber
6132
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5894
                    ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5895
                    "/ guess lineNumber from sent-messages selector
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5896
                    "/ kludge to fix lineNr-display of shared subclassResponsibility methods.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5897
                    lineNrInMethod == 0 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5898
                        |conIdx sentContext messages|
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5899
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5900
                        conIdx := contextArray identityIndexOf:con.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5901
                        conIdx > 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5902
                            sentContext := contextArray at:conIdx-1.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5903
                            sentContext isBlockContext ifFalse:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5904
                                (method notNil and:[code notNil]) ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5905
                                    messages := method messagesSent.
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5906
                                    messages size == 1 ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5907
                                        sentContext selector == messages first ifTrue:[
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5908
                                            lineNrInMethod := code asStringCollection findFirst:[:l | l includesString:sentContext selector].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5909
                                        ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5910
                                    ]
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5911
                                ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5912
                            ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5913
                        ].
ca1f04f5232b lineNumber display of shared subclassResponsibilityMethods
Claus Gittinger <cg@exept.de>
parents: 6129
diff changeset
  5914
                    ].
2177
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5915
                ].
48cf132c539f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2175
diff changeset
  5916
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5917
                UserPreferences current syntaxColoring ifTrue:[
2709
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5918
                    implementorClass isNil ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5919
                        (con isBlockContext
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5920
                        and:[con home isNil
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5921
                        and:[con guessedHome notNil]])
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5922
                        ifTrue:[
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5923
                            implementorClass := con guessedHome mclass
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5924
                        ]
0c8564f828c2 syntax coloring of optimized block contexts
Claus Gittinger <cg@exept.de>
parents: 2697
diff changeset
  5925
                    ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5926
                    implementorClass notNil ifTrue:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5927
                        (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  5928
                            code size < 100000 ifTrue:[
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5929
                                Error handle:[:ex |
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5930
                                ] do:[
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5931
                                    code := highlighter formatMethod:code in:implementorClass.
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  5932
                                ]
5504
48b13cfc8599 dont colorize huge methods
Claus Gittinger <cg@exept.de>
parents: 5455
diff changeset
  5933
                            ]
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5934
                        ]
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5935
                    ]
1555
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5936
                ].
756ab2711237 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1537
diff changeset
  5937
6178
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5938
"/                code ~= (codeView contents) ifTrue:[
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5939
                    codeView setContents:code.
2944e95c6eda faster updateFromContext (avoid Text)
Claus Gittinger <cg@exept.de>
parents: 6172
diff changeset
  5940
"/                ].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5941
                (lineNrInMethod notNil 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5942
                and:[lineNrInMethod ~~ 0
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5943
                and:[lineNrInMethod <= codeView list size]]) ifTrue:[
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  5944
lineNrInMethod == 255 ifFalse:[
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5945
                    (lineNrInMethod == 255 
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5946
                    and:[method notNil
1960
e317efd283b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1926
diff changeset
  5947
                    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
  5948
                        "/ 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
  5949
                        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
  5950
                    ] ifFalse:[
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5951
                        codeView selectLine:lineNrInMethod.
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5952
                    ].
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5953
                    codeView makeSelectionVisible
7000
3302ab5a819e cleanup
Claus Gittinger <cg@exept.de>
parents: 6971
diff changeset
  5954
].
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5955
                ] ifFalse:[
1694
Claus Gittinger <cg@exept.de>
parents: 1693
diff changeset
  5956
                    codeView unselect.
1624
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5957
                    codeView scrollToTop
5bec63471d4d ask class for syntaxHighligter (do not format java code ...)
Claus Gittinger <cg@exept.de>
parents: 1613
diff changeset
  5958
                ]
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5959
            ].
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5960
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5961
            codeView acceptEnabled:canAccept.
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5962
            canAccept ifTrue:[
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5963
                codeView acceptAction:[:code | self codeAccept:code asString]
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5964
            ] ifFalse:[
6046
81b2da24a0b6 Send #beep to window instead of device
Stefan Vogel <sv@exept.de>
parents: 6034
diff changeset
  5965
                codeView acceptAction:[:code | self beep]
1695
26d424d5bd6e oops stc bug
Claus Gittinger <cg@exept.de>
parents: 1694
diff changeset
  5966
            ].
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5967
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5968
            receiverInspector inspect:rec.
3427
c1a0db432106 if dense backtrace:
Claus Gittinger <cg@exept.de>
parents: 3412
diff changeset
  5969
            receiverInspector tryToSelectKeyNamed:lastSelectionInReceiverInspector.
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5970
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5971
            "
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5972
             the one below is wrong: currently, the
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5973
             evaluator cannot handle passed contexts.
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5974
             Once it does, pass con as in:-arg
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5975
            "
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5976
            (rec isJavaObject
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5977
            and:[method isNil or:[method isJavaMethod not]]) ifTrue:[
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5978
                "/ although a java object, use the smalltalk parser here for doIts.
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5979
                evaluatorClass := Parser
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5980
            ] ifFalse:[
7999
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  5981
                (method notNil and:[method mclass notNil]) ifTrue:[
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  5982
                    evaluatorClass := method mclass evaluatorClass.
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  5983
                ] ifFalse:[
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  5984
                    evaluatorClass := rec class evaluatorClass.
557bcfac0ce5 determine compilerClass from method - not receiver
Claus Gittinger <cg@exept.de>
parents: 7981
diff changeset
  5985
                ].
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5986
            ].
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5987
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5988
            codeView doItAction:[:theCode |
2790
b06eb2d9df91 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2720
diff changeset
  5989
                             evaluatorClass 
1399
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5990
                                 evaluate:theCode 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5991
                                 in:actualContext
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5992
                                 receiver:rec 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5993
                                 notifying:codeView 
35674d7ac5bc handle contextVars in codeViews doIt.
Claus Gittinger <cg@exept.de>
parents: 1398
diff changeset
  5994
                                 logged:true 
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5995
                                 ifFail:nil 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5996
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5997
            currentMethod := method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5998
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  5999
            selectedContext := homeContext.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6000
            actualContext := con
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6001
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6002
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6003
        codeView contents:nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6004
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6005
    codeView modified:false.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6006
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6007
    con isContext ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6008
        sendButton disable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6009
    ] ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6010
        sendButton enable.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6011
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6012
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6013
    "clear out locals to prevent keeping around unneeded contexts 
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6014
     (due to the block held in codeView).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6015
     (not really needed, since stuff gets collected away sooner or later ...
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6016
      ... but this makes it a bit sooner)
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6017
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6018
    con := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6019
    homeContext := nil.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6020
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6021
    canDefine ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6022
        defineButton beVisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6023
    ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6024
        defineButton beInvisible.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6025
    ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6026
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6027
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6028
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6029
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6030
    self updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6031
6849
e95621a873be try to decompile if no source
Claus Gittinger <cg@exept.de>
parents: 6821
diff changeset
  6032
    "Created: / 14-08-1997 / 20:15:00 / cg"
7481
11c16a700dcf ignore syntaxHighlighter errors
Claus Gittinger <cg@exept.de>
parents: 7328
diff changeset
  6033
    "Modified: / 27-10-2006 / 14:19:32 / cg"
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6034
!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6035
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6036
updateMenuItems
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6037
    |m mthd cls mCls rCls|
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6038
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6039
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6040
     enable/disable some menu items
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6041
    "
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6042
    m := contextView middleButtonMenu.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6043
    m notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6044
        m disable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6045
        m disable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6046
        canShowMore ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6047
            m disable:#showMore
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6048
        ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6049
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6050
        selectedContext notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6051
            m enableAll:#(browseImplementors browseSenders inspectContext skip skipForReturn).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6052
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6053
            mthd := selectedContext method.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6054
            mthd notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6055
                cls := mCls := mthd containingClass.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6056
                mthd isBreakpointed ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6057
                    m enable:#removeBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6058
                ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6059
                    m enable:#addBreakpoint.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6060
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6061
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6062
            rCls := selectedContext receiver class.
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6063
            cls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6064
                cls := rCls
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6065
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6066
            cls notNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6067
                m enableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6068
                rCls == mCls ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6069
                    m disable:#browseReceiversClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6070
                ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6071
                mCls isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6072
                    m disable:#browseImplementingClass
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6073
                ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6074
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6075
            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6076
                m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6077
            ].
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6078
        ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6079
            m disableAll:#(browseImplementingClass browseReceiversClass browseClassHierarchy browseFullClassProtocol).
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6080
        ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6081
    ]
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6082
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6083
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6084
!DebugView class methodsFor:'documentation'!
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6085
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6086
version
8154
d755b646fc9d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8152
diff changeset
  6087
    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.433 2008-05-29 13:29:35 cg Exp $'
4122
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6088
! !
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6089
Claus Gittinger <cg@exept.de>
parents: 4121
diff changeset
  6090
DebugView initialize!