2785 aComponent == abortButton ifTrue:[ |
2783 aComponent == abortButton ifTrue:[ |
2786 s := 'Abort (unwind to eventLoop)' |
2784 s := 'Abort (unwind to eventLoop)' |
2787 ]. |
2785 ]. |
2788 aComponent == terminateButton ifTrue:[ |
2786 aComponent == terminateButton ifTrue:[ |
2789 Processor activeProcess isGUIProcess ifTrue:[ |
2787 Processor activeProcess isGUIProcess ifTrue:[ |
2790 s := 'Terminate the process (closes view and shuts down application)' |
2788 s := 'Terminate the process.\Attention: closes view and shuts down application.' |
2791 ] ifFalse:[ |
2789 ] ifFalse:[ |
2792 s := 'Terminate the process' |
2790 s := 'Terminate the process.\Attention: do not kill a system thread' |
2793 ] |
2791 ] |
2794 ]. |
2792 ]. |
2795 aComponent == continueButton ifTrue:[ |
2793 aComponent == continueButton ifTrue:[ |
2796 continueButton label = (resources string:'Stop') ifTrue:[ |
2794 continueButton label = (resources string:'Stop') ifTrue:[ |
2797 s := 'Stop' |
2795 s := 'Stop' |
3031 "closing the debugger implies an abort or continue" |
3029 "closing the debugger implies an abort or continue" |
3032 |
3030 |
3033 |m| |
3031 |m| |
3034 |
3032 |
3035 withConfirmation ifTrue:[ |
3033 withConfirmation ifTrue:[ |
3036 self checkIfCodeIsReallyModified ifTrue:[ |
3034 self checkIfCodeIsReallyModified ifTrue:[ |
3037 (self confirm:('Code modified - exit anyway ?')) |
3035 (self confirm:('Code was modified.\\Exit anyway ?')) |
3038 ifFalse:[ |
3036 ifFalse:[ |
3039 ^ self |
3037 ^ self |
3040 ] |
3038 ] |
3041 ] |
3039 ] |
3042 ]. |
3040 ]. |
3043 |
3041 |
3044 self autoUpdateOff. |
3042 self autoUpdateOff. |
3045 |
3043 |
3046 (m := contextView middleButtonMenu) notNil ifTrue:[m hide]. |
3044 (m := contextView middleButtonMenu) notNil ifTrue:[m hide]. |
3047 inspecting ifFalse:[ |
3045 inspecting ifFalse:[ |
3048 "I am running on top of a process, abort or continue it" |
3046 "I am running on top of a process, abort or continue it" |
3049 |
3047 |
3050 windowGroup notNil ifTrue:[ |
3048 windowGroup notNil ifTrue:[ |
3051 windowGroup setProcess:nil. |
3049 windowGroup setProcess:nil. |
3052 ]. |
3050 ]. |
3053 self uncacheMyself. |
3051 self uncacheMyself. |
3054 |
3052 |
3055 "/ |
3053 "/ |
3056 "/ catch invalid return; |
3054 "/ catch invalid return; |
3057 "/ this happens, when my process has somehow died (quickterminate) |
3055 "/ this happens, when my process has somehow died (quickterminate) |
3058 "/ and I am a leftOver view, which gets terminated via the launchers |
3056 "/ and I am a leftOver view, which gets terminated via the launchers |
3059 "/ #destroy-window function. |
3057 "/ #destroy-window function. |
3060 "/ |
3058 "/ |
3061 Context cannotReturnSignal handle:[:ex | |
3059 Context cannotReturnSignal handle:[:ex | |
3062 'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR. |
3060 'DebugView [info]: OOPS - non regular debugView closing(1)' infoPrintCR. |
3063 self uncacheMyself. |
3061 self uncacheMyself. |
3064 Debugger newDebugger. |
3062 Debugger newDebugger. |
3065 ex return. |
3063 ex return. |
3066 ] do:[ |
3064 ] do:[ |
3067 AbortOperationRequest isHandled ifTrue:[ |
3065 AbortOperationRequest isHandled ifTrue:[ |
3068 self doAbort. |
3066 self doAbort. |
3069 ] ifFalse:[ |
3067 ] ifFalse:[ |
3070 self doContinue |
3068 self doContinue |
3071 ] |
3069 ] |
3072 ]. |
3070 ]. |
3073 "/ We don't reach this point normally |
3071 "/ We don't reach this point normally |
3074 'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR. |
3072 'DebugView [info]: OOPS - non regular debugView closing(2)' infoPrintCR. |
3075 ]. |
3073 ]. |
3076 |
3074 |
3077 Debugger newDebugger. |
3075 Debugger newDebugger. |
3078 "/ since I am going to be destroyed, remove me from the cache |
3076 "/ since I am going to be destroyed, remove me from the cache |
3079 self uncacheMyself. |
3077 self uncacheMyself. |
3240 ! |
3238 ! |
3241 |
3239 |
3242 initializeButtons1In:bpanel |
3240 initializeButtons1In:bpanel |
3243 "creates the top button row, consisting of 'continue', 'abort', 'terminate'..." |
3241 "creates the top button row, consisting of 'continue', 'abort', 'terminate'..." |
3244 |
3242 |
3245 |separator| |
3243 |separator buttonWidth| |
3246 |
3244 |
|
3245 buttonWidth := 170. |
|
3246 |
3247 bpanel horizontalLayout:#left. |
3247 bpanel horizontalLayout:#left. |
3248 bpanel verticalLayout:#centerMax. |
3248 bpanel verticalLayout:#centerMax. |
3249 bpanel verticalSpace:ViewSpacing // 2. |
3249 bpanel verticalSpace:ViewSpacing // 2. |
3250 |
3250 |
3251 self initializeContinueButtonIn:bpanel. |
3251 self initializeContinueButtonIn:bpanel. |
3252 continueButton width:150. |
3252 continueButton width:buttonWidth. |
3253 |
3253 |
3254 "/ separator := View extent:(10 @ 5) in:bpanel. |
3254 "/ separator := View extent:(10 @ 5) in:bpanel. |
3255 "/ separator borderWidth:0; level:0. |
3255 "/ separator borderWidth:0; level:0. |
3256 self initializeAbortButtonIn:bpanel. |
3256 self initializeAbortButtonIn:bpanel. |
3257 abortButton width:150. |
3257 abortButton width:buttonWidth. |
3258 |
3258 |
3259 separator := View extent:(100 @ 5) in:bpanel. |
3259 separator := View extent:(100 @ 5) in:bpanel. |
3260 separator borderWidth:0; level:0. |
3260 separator borderWidth:0; level:0. |
3261 |
3261 |
3262 self initializeTerminateButtonIn:bpanel. |
3262 self initializeTerminateButtonIn:bpanel. |
3267 self initializeGotoDialogOpenerButtonIn:bpanel. |
3267 self initializeGotoDialogOpenerButtonIn:bpanel. |
3268 self initializeGotoApplicationActionMethodButtonIn:bpanel. |
3268 self initializeGotoApplicationActionMethodButtonIn:bpanel. |
3269 self initializeDefineButtonIn:bpanel. |
3269 self initializeDefineButtonIn:bpanel. |
3270 |
3270 |
3271 (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[ |
3271 (UserPreferences current allowSendMailFromDebugger and:[SendMailTool notNil]) ifTrue:[ |
3272 separator := View extent:(10 @ 5) in:bpanel. |
3272 separator := View extent:(10 @ 5) in:bpanel. |
3273 separator borderWidth:0; level:0. |
3273 separator borderWidth:0; level:0. |
3274 self initializeReportButtonIn:bpanel. |
3274 self initializeReportButtonIn:bpanel. |
3275 ]. |
3275 ]. |
3276 "Modified: / 17.11.2001 / 21:02:59 / cg" |
3276 "Modified: / 17.11.2001 / 21:02:59 / cg" |
3277 ! |
3277 ! |
3278 |
3278 |
3279 initializeButtons2In:bpanel |
3279 initializeButtons2In:bpanel |
3280 "creates the second button row, consisting of 'next', 'step', 'return'..." |
3280 "creates the second button row, consisting of 'next', 'step', 'return'..." |
3281 |
3281 |
3282 |separator| |
3282 |separator buttonWidth| |
|
3283 |
|
3284 buttonWidth := 130. |
3283 |
3285 |
3284 bpanel horizontalLayout:#left. |
3286 bpanel horizontalLayout:#left. |
3285 bpanel verticalLayout:#centerMax. |
3287 bpanel verticalLayout:#centerMax. |
3286 bpanel verticalSpace:ViewSpacing // 2. |
3288 bpanel verticalSpace:ViewSpacing // 2. |
3287 |
3289 |
3288 self initializeNextButtonIn:bpanel. |
3290 self initializeNextButtonIn:bpanel. |
3289 nextButton width:100. |
3291 nextButton width:buttonWidth. |
3290 |
3292 |
3291 self initializeStepButtonIn:bpanel. |
3293 self initializeStepButtonIn:bpanel. |
3292 stepButton width:100. |
3294 stepButton width:buttonWidth. |
3293 |
3295 |
3294 "/ cg: |
3296 "/ cg: |
3295 "/ I disabled the stepIn / stepOut buttons - for now. |
3297 "/ I disabled the stepIn / stepOut buttons - for now. |
3296 "/ they do not work reliable with inlined blocks yet. |
3298 "/ they do not work reliable with inlined blocks yet. |
3297 "/ |
3299 "/ |
3323 "/ label:img |
3325 "/ label:img |
3324 "/ action:[stepButton turnOff. self doNextOut] |
3326 "/ action:[stepButton turnOff. self doNextOut] |
3325 "/ in:bpanel. |
3327 "/ in:bpanel. |
3326 |
3328 |
3327 self initializeSendButtonIn:bpanel. |
3329 self initializeSendButtonIn:bpanel. |
3328 sendButton width:100. |
3330 sendButton width:buttonWidth. |
3329 |
3331 |
3330 separator := View extent:(30 @ 5) in:bpanel. |
3332 separator := View extent:(30 @ 5) in:bpanel. |
3331 separator borderWidth:0; level:0. |
3333 separator borderWidth:0; level:0. |
3332 |
3334 |
3333 self initializeReturnButtonIn:bpanel. |
3335 self initializeReturnButtonIn:bpanel. |
3334 returnButton width:100. |
3336 returnButton width:buttonWidth. |
3335 self initializeRestartButtonIn:bpanel. |
3337 self initializeRestartButtonIn:bpanel. |
3336 restartButton width:100. |
3338 restartButton width:buttonWidth. |
3337 self initializeResendButtonIn:bpanel. |
3339 self initializeResendButtonIn:bpanel. |
3338 resendButton width:100. |
3340 resendButton width:buttonWidth. |
3339 |
3341 |
3340 "Modified: / 18-06-2010 / 08:32:05 / cg" |
3342 "Modified: / 18-06-2010 / 08:32:05 / cg" |
3341 ! |
3343 ! |
3342 |
3344 |
3343 initializeButtonsIn:bpanel |
3345 initializeButtonsIn:bpanel |
4875 "abort - send Object>>abortSignal, which is usually caught |
4877 "abort - send Object>>abortSignal, which is usually caught |
4876 at save places (for example: in the event loop) and returns back |
4878 at save places (for example: in the event loop) and returns back |
4877 from whatever the process is doing, but does not terminate it." |
4879 from whatever the process is doing, but does not terminate it." |
4878 |
4880 |
4879 self checkIfCodeIsReallyModified ifTrue:[ |
4881 self checkIfCodeIsReallyModified ifTrue:[ |
4880 (self confirm:('Code modified - abort anyway ?')) |
4882 (self confirm:('Code was modified.\\Abort anyway ?')) |
4881 ifFalse:[ |
4883 ifFalse:[ |
4882 ^ self |
4884 ^ self |
4883 ] |
4885 ] |
4884 ]. |
4886 ]. |
4885 |
4887 ^ self doAbortWithoutConfirmation |
4886 inspecting ifTrue:[ |
|
4887 inspectedProcess isDead ifTrue:[ |
|
4888 self showTerminated. |
|
4889 ^ self |
|
4890 ]. |
|
4891 (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[ |
|
4892 self showError:'** the process does not handle the abort signal **' |
|
4893 ] ifTrue:[ |
|
4894 self interruptProcessWith:[AbortOperationRequest raise]. |
|
4895 ]. |
|
4896 ^ self |
|
4897 ]. |
|
4898 |
|
4899 steppedContext := wrapperContext := nil. |
|
4900 haveControl := false. |
|
4901 exitAction := #abort. |
|
4902 |
|
4903 "exit private event-loop" |
|
4904 catchBlock notNil ifTrue:[ |
|
4905 abortButton turnOff. |
|
4906 catchBlock value. |
|
4907 |
|
4908 "/ not reached |
|
4909 'DebugView [warning]: abort failed' errorPrintCR. |
|
4910 ]. |
|
4911 |
|
4912 ^ self. |
|
4913 |
|
4914 "Modified: / 17.11.2001 / 22:53:22 / cg" |
|
4915 ! |
4888 ! |
4916 |
4889 |
4917 doAbortAll |
4890 doAbortAll |
4918 "abortAll - send Object>>abortAllSignal, which is usually caught |
4891 "abortAll - send Object>>abortAllSignal, which is usually caught |
4919 at save places (for example: in the event loop) and returns back |
4892 at save places (for example: in the event loop) and returns back |
4948 abortButton turnOff. |
4921 abortButton turnOff. |
4949 catchBlock value. |
4922 catchBlock value. |
4950 |
4923 |
4951 "/ not reached |
4924 "/ not reached |
4952 'DebugView [warning]: abort failed' errorPrintCR. |
4925 'DebugView [warning]: abort failed' errorPrintCR. |
|
4926 ]. |
|
4927 |
|
4928 ^ self. |
|
4929 |
|
4930 "Modified: / 17.11.2001 / 22:53:22 / cg" |
|
4931 ! |
|
4932 |
|
4933 doAbortWithoutConfirmation |
|
4934 "abort - send Object>>abortSignal, which is usually caught |
|
4935 at save places (for example: in the event loop) and returns back |
|
4936 from whatever the process is doing, but does not terminate it." |
|
4937 |
|
4938 inspecting ifTrue:[ |
|
4939 inspectedProcess isDead ifTrue:[ |
|
4940 self showTerminated. |
|
4941 ^ self |
|
4942 ]. |
|
4943 (AbortOperationRequest isHandledIn:inspectedProcess suspendedContext) ifFalse:[ |
|
4944 self showError:'** the process does not handle the abort signal **' |
|
4945 ] ifTrue:[ |
|
4946 self interruptProcessWith:[AbortOperationRequest raise]. |
|
4947 ]. |
|
4948 ^ self |
|
4949 ]. |
|
4950 |
|
4951 steppedContext := wrapperContext := nil. |
|
4952 haveControl := false. |
|
4953 exitAction := #abort. |
|
4954 |
|
4955 "exit private event-loop" |
|
4956 catchBlock notNil ifTrue:[ |
|
4957 abortButton turnOff. |
|
4958 catchBlock value. |
|
4959 |
|
4960 "/ not reached |
|
4961 'DebugView [warning]: abort failed' errorPrintCR. |
4953 ]. |
4962 ]. |
4954 |
4963 |
4955 ^ self. |
4964 ^ self. |
4956 |
4965 |
4957 "Modified: / 17.11.2001 / 22:53:22 / cg" |
4966 "Modified: / 17.11.2001 / 22:53:22 / cg" |
5278 "single send; reenter with next message send" |
5287 "single send; reenter with next message send" |
5279 |
5288 |
5280 inspecting ifTrue:[^ self]. |
5289 inspecting ifTrue:[^ self]. |
5281 |
5290 |
5282 self checkIfCodeIsReallyModified ifTrue:[ |
5291 self checkIfCodeIsReallyModified ifTrue:[ |
5283 (self confirm:('Code modified - step anyway ?')) |
5292 (self confirm:('Code was modified.\\Step anyway ?')) |
5284 ifFalse:[ |
5293 ifFalse:[ |
5285 ^ self |
5294 ^ self |
5286 ] |
5295 ] |
5287 ]. |
5296 ]. |
5288 |
5297 |
5289 canContinue ifTrue:[ |
5298 canContinue ifTrue:[ |
5290 steppedContext := wrapperContext := nil. |
5299 steppedContext := wrapperContext := nil. |
5291 haveControl := false. |
5300 haveControl := false. |
5292 exitAction := #step. |
5301 exitAction := #step. |
5293 |
5302 |
5294 "exit private event-loop" |
5303 "exit private event-loop" |
5295 catchBlock value. |
5304 catchBlock value. |
5296 |
5305 |
5297 "/ not reached |
5306 "/ not reached |
5298 'DebugView [warning]: send failed' errorPrintCR. |
5307 'DebugView [warning]: send failed' errorPrintCR. |
5299 sendButton turnOff. |
5308 sendButton turnOff. |
5300 ] |
5309 ] |
5301 |
5310 |
5302 "Created: / 6.3.1997 / 21:09:36 / cg" |
5311 "Created: / 6.3.1997 / 21:09:36 / cg" |
5303 "Modified: / 29.7.1998 / 21:49:29 / cg" |
5312 "Modified: / 29.7.1998 / 21:49:29 / cg" |
5304 ! |
5313 ! |
5508 |con method| |
5517 |con method| |
5509 |
5518 |
5510 inspecting ifTrue:[^ self]. |
5519 inspecting ifTrue:[^ self]. |
5511 |
5520 |
5512 self checkIfCodeIsReallyModified ifTrue:[ |
5521 self checkIfCodeIsReallyModified ifTrue:[ |
5513 (self confirm:('Code modified - step anyway ?')) |
5522 (self confirm:('Code was modified\\Step anyway ?')) |
5514 ifFalse:[ |
5523 ifFalse:[ |
5515 ^ self |
5524 ^ self |
5516 ] |
5525 ] |
5517 ]. |
5526 ]. |
5518 |
5527 |
5519 canContinue ifTrue:[ |
5528 canContinue ifTrue:[ |
5520 selectedContext notNil ifTrue:[ |
5529 selectedContext notNil ifTrue:[ |
5521 con := actualContext. "/ selectedContext. |
5530 con := actualContext. "/ selectedContext. |
5522 steppedContextLineno := actualContext lineNumber. |
5531 steppedContextLineno := actualContext lineNumber. |
5523 ] ifFalse:[ |
5532 ] ifFalse:[ |
5524 con := contextArray at:2. |
5533 con := contextArray at:2. |
5525 steppedContextLineno := con lineNumber. |
5534 steppedContextLineno := con lineNumber. |
5526 ]. |
5535 ]. |
5527 |
5536 |
5528 skipLineNr := lineNrOrNilOrMinus1. |
5537 skipLineNr := lineNrOrNilOrMinus1. |
5529 |
5538 |
5530 lineNrOrNilOrMinus1 == -1 ifTrue:[ |
5539 lineNrOrNilOrMinus1 == -1 ifTrue:[ |
5531 steppedContextLineno := skipLineNr := nil. |
5540 steppedContextLineno := skipLineNr := nil. |
5532 ]. |
5541 ]. |
5533 |
5542 |
5534 (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[ |
5543 (stepUntilEntering isNil and:[stepHow == #send]) ifTrue:[ |
5535 steppedContext := contextArray at:1. |
5544 steppedContext := contextArray at:1. |
5536 stepHow := #nextIn. |
5545 stepHow := #nextIn. |
5537 ] ifFalse:[ |
5546 ] ifFalse:[ |
5538 stepHow == #nextOut ifTrue:[ |
5547 stepHow == #nextOut ifTrue:[ |
5539 steppedContext := con home. |
5548 steppedContext := con home. |
5540 ] ifFalse:[ |
5549 ] ifFalse:[ |
5541 steppedContext := con. |
5550 steppedContext := con. |
5542 ]. |
5551 ]. |
5543 ]. |
5552 ]. |
5544 |
5553 |
5545 wrapperContext := nil. |
5554 wrapperContext := nil. |
5546 |
5555 |
5547 "/ ' step con:' print. (ObjectMemory addressOf:steppedContext) printHex. ' ' print. steppedContext printCR. |
5556 "/ ' step con:' print. (ObjectMemory addressOf:steppedContext) printHex. ' ' print. steppedContext printCR. |
5548 |
5557 |
5549 " |
5558 " |
5550 if we step in a wrapped method, |
5559 if we step in a wrapped method, |
5551 prepare to skip the prolog ... |
5560 prepare to skip the prolog ... |
5552 " |
5561 " |
5553 |
5562 |
5554 inWrap := false. |
5563 inWrap := false. |
5555 method := con method. |
5564 method := con method. |
5556 (method notNil |
5565 (method notNil |
5557 and:[method isWrapped |
5566 and:[method isWrapped |
5558 and:[method originalMethod ~~ method]]) ifTrue:[ |
5567 and:[method originalMethod ~~ method]]) ifTrue:[ |
5559 inWrap := true |
5568 inWrap := true |
5560 ]. |
5569 ]. |
5561 |
5570 |
5562 lineNrOrNilOrMinus1 == #return ifTrue:[ |
5571 lineNrOrNilOrMinus1 == #return ifTrue:[ |
5563 Processor activeProcess forceInterruptOnReturnOf:con. |
5572 Processor activeProcess forceInterruptOnReturnOf:con. |
5564 ]. |
5573 ]. |
5565 |
5574 |
5566 con := nil. |
5575 con := nil. |
5567 bigStep := true. |
5576 bigStep := true. |
5568 haveControl := false. |
5577 haveControl := false. |
5569 exitAction := #step. |
5578 exitAction := #step. |
5570 |
5579 |
5571 "exit private event-loop" |
5580 "exit private event-loop" |
5572 catchBlock value. |
5581 catchBlock value. |
5573 |
5582 |
5574 "/ not reached |
5583 "/ not reached |
5575 'DebugView [warning]: step failed' errorPrintCR. |
5584 'DebugView [warning]: step failed' errorPrintCR. |
5576 stepButton turnOff. nextButton turnOff. sendButton turnOff. |
5585 stepButton turnOff. nextButton turnOff. sendButton turnOff. |
5577 ] |
5586 ] |
5578 |
5587 |
5579 "Modified: / 29.7.1998 / 21:50:16 / cg" |
5588 "Modified: / 29.7.1998 / 21:50:16 / cg" |
5580 ! |
5589 ! |
5581 |
5590 |
6686 ! |
6695 ! |
6687 |
6696 |
6688 findNodeIn:tree forInterval:interval |
6697 findNodeIn:tree forInterval:interval |
6689 <resource: #obsolete> |
6698 <resource: #obsolete> |
6690 |
6699 |
6691 |node| |
6700 self obsoleteMethodWarning. |
6692 |
6701 ^ DoWhatIMeanSupport findNodeIn:tree forInterval:interval |
6693 self obsoleteMethodWarning. |
6702 "/ |node| |
6694 node := nil. |
6703 "/ |
6695 tree nodesDo:[:each | |
6704 "/ node := nil. |
6696 (each intersectsInterval:interval) ifTrue:[ |
6705 "/ tree nodesDo:[:each | |
6697 (node isNil or:[node == each parent]) ifTrue:[ |
6706 "/ (each intersectsInterval:interval) ifTrue:[ |
6698 node := each |
6707 "/ (node isNil or:[node == each parent]) ifTrue:[ |
6699 ] ifFalse:[ |
6708 "/ node := each |
6700 (node parent notNil |
6709 "/ ] ifFalse:[ |
6701 and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil] |
6710 "/ (node parent notNil |
6702 ] |
6711 "/ and:[node parent isCascade and:[each parent isCascade]]) ifFalse:[^ nil] |
6703 ] |
6712 "/ ] |
6704 ]. |
6713 "/ ] |
6705 ^ node |
6714 "/ ]. |
|
6715 "/ ^ node |
6706 ! |
6716 ! |
6707 |
6717 |
6708 goodSkipUntilSelector |
6718 goodSkipUntilSelector |
6709 |current| |
6719 |current| |
6710 |
6720 |
8767 confirm:aString |
8779 confirm:aString |
8768 "open a modal yes-no dialog. |
8780 "open a modal yes-no dialog. |
8769 Redefined here, to answer true, if exclusice Debugger, which cannot handle popup boxes" |
8781 Redefined here, to answer true, if exclusice Debugger, which cannot handle popup boxes" |
8770 |
8782 |
8771 (exclusive or:[windowGroup isNil]) ifTrue:[ |
8783 (exclusive or:[windowGroup isNil]) ifTrue:[ |
8772 ^ true |
8784 ^ true |
8773 ]. |
8785 ]. |
8774 ^ super confirm:aString. |
8786 ^ super confirm:(resources stringWithCRs:aString). |
8775 ! |
8787 ! |
8776 |
8788 |
8777 doShowSelection:lineNr |
8789 doShowSelection:lineNr |
8778 "user clicked on a header line - show selected code in textView. |
8790 "user clicked on a header line - show selected code in textView. |
8779 Also sent to autoselect an interesting context on entry." |
8791 Also sent to autoselect an interesting context on entry." |
9295 codeView methodHolder value: method. |
9307 codeView methodHolder value: method. |
9296 codeView classHolder value: ((method respondsTo: #mclass) ifTrue:[method mclass] ifFalse:[rec class]) |
9308 codeView classHolder value: ((method respondsTo: #mclass) ifTrue:[method mclass] ifFalse:[rec class]) |
9297 ] ifFalse:[ |
9309 ] ifFalse:[ |
9298 UserPreferences current syntaxColoring ifTrue:[ |
9310 UserPreferences current syntaxColoring ifTrue:[ |
9299 implementorClass isNil ifTrue:[ |
9311 implementorClass isNil ifTrue:[ |
|
9312 |guessedHome| |
9300 (con isBlockContext |
9313 (con isBlockContext |
9301 and:[con home isNil |
9314 and:[con home isNil |
9302 and:[con guessedHome notNil]]) |
9315 and:[(guessedHome := con guessedHome) notNil]]) |
9303 ifTrue:[ |
9316 ifTrue:[ |
9304 implementorClass := con guessedHome mclass |
9317 implementorClass := guessedHome mclass |
9305 ] |
9318 ] |
9306 ]. |
9319 ]. |
9307 implementorClass notNil ifTrue:[ |
9320 implementorClass notNil ifTrue:[ |
9308 (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[ |
9321 (highlighter := implementorClass syntaxHighlighterClass) notNil ifTrue:[ |
9309 code size < 100000 ifTrue:[ |
9322 code size < 100000 ifTrue:[ |
9479 |
9493 |
9480 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'! |
9494 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'! |
9481 |
9495 |
9482 printConditionOn:aStream |
9496 printConditionOn:aStream |
9483 ignoredSendingClassAndSelectors notEmptyOrNil ifTrue:[ |
9497 ignoredSendingClassAndSelectors notEmptyOrNil ifTrue:[ |
9484 aStream nextPutAll:(' if called from %1 » %2' |
9498 aStream nextPutAll:(' if called from %1 » %2' |
9485 bindWith:ignoredSendingClassAndSelectors first first |
9499 bindWith:ignoredSendingClassAndSelectors first first |
9486 with:ignoredSendingClassAndSelectors first second). |
9500 with:ignoredSendingClassAndSelectors first second). |
9487 ^ self. |
9501 ^ self. |
9488 ]. |
9502 ]. |
9489 ignoredProcesses notEmptyOrNil ifTrue:[ |
9503 ignoredProcesses notEmptyOrNil ifTrue:[ |