DebugView.st
branchjv
changeset 12682 6fb2176bf0fa
parent 12650 e0f607754b9a
parent 12671 9124b4453947
child 12807 ba8c5416aa28
equal deleted inserted replaced
12681:adbbcc25326f 12682:6fb2176bf0fa
   120         Exception Signal
   120         Exception Signal
   121         Process
   121         Process
   122 "
   122 "
   123 ! !
   123 ! !
   124 
   124 
       
   125 
   125 !DebugView class methodsFor:'initialization'!
   126 !DebugView class methodsFor:'initialization'!
   126 
   127 
   127 initialize
   128 initialize
   128     InitialNChainShown := 50.
   129     InitialNChainShown := 50.
   129     "/ DefaultDebuggerBackgroundColor := nil.
   130     "/ DefaultDebuggerBackgroundColor := nil.
   138     "reinitialize after an image-restart"
   139     "reinitialize after an image-restart"
   139 
   140 
   140     self newDebugger
   141     self newDebugger
   141 ! !
   142 ! !
   142 
   143 
       
   144 
   143 !DebugView class methodsFor:'cleanup'!
   145 !DebugView class methodsFor:'cleanup'!
   144 
   146 
   145 lowSpaceCleanup
   147 lowSpaceCleanup
   146     "in low memory situations, give up cached debuggers"
   148     "in low memory situations, give up cached debuggers"
   147 
   149 
   171     "
   173     "
   172      DebugView newDebugger
   174      DebugView newDebugger
   173     "
   175     "
   174 ! !
   176 ! !
   175 
   177 
       
   178 
   176 !DebugView class methodsFor:'defaults'!
   179 !DebugView class methodsFor:'defaults'!
   177 
   180 
   178 defaultIcon
   181 defaultIcon
   179     "return the browsers default window icon"
   182     "return the browsers default window icon"
   180 
   183 
   213 
   216 
   214     DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
   217     DefaultDebuggerBackgroundColor := StyleSheet at:#'debugView.viewBackgroundColor'
   215 
   218 
   216     "Modified: / 17.11.2001 / 17:31:42 / cg"
   219     "Modified: / 17.11.2001 / 17:31:42 / cg"
   217 ! !
   220 ! !
       
   221 
   218 
   222 
   219 !DebugView class methodsFor:'ignoring halts'!
   223 !DebugView class methodsFor:'ignoring halts'!
   220 
   224 
   221 haltIgnoreInformationFor:haltingMethod atLineNr:lineNrInHaltingMethod
   225 haltIgnoreInformationFor:haltingMethod atLineNr:lineNrInHaltingMethod
   222     "the information (if any) about the ignore-state of a halt"
   226     "the information (if any) about the ignore-state of a halt"
   383     "forget about all ignored halts"
   387     "forget about all ignored halts"
   384 
   388 
   385     IgnoredHalts := nil.
   389     IgnoredHalts := nil.
   386     Smalltalk changed:#ignoredHalts.
   390     Smalltalk changed:#ignoredHalts.
   387 ! !
   391 ! !
       
   392 
   388 
   393 
   389 !DebugView class methodsFor:'instance creation / entering'!
   394 !DebugView class methodsFor:'instance creation / entering'!
   390 
   395 
   391 enter
   396 enter
   392     "enter a debugger"
   397     "enter a debugger"
   646     aDebugger openOn:aProcess.
   651     aDebugger openOn:aProcess.
   647     ^ nil
   652     ^ nil
   648 
   653 
   649     "Modified: 4.4.1997 / 16:22:36 / cg"
   654     "Modified: 4.4.1997 / 16:22:36 / cg"
   650 ! !
   655 ! !
       
   656 
   651 
   657 
   652 !DebugView class methodsFor:'menu specs'!
   658 !DebugView class methodsFor:'menu specs'!
   653 
   659 
   654 breakPointMenuSpec
   660 breakPointMenuSpec
   655     "This resource specification was automatically generated
   661     "This resource specification was automatically generated
  1103          (MenuItem
  1109          (MenuItem
  1104             label: 'Change Priority...'
  1110             label: 'Change Priority...'
  1105             itemValue: doChangeProcessPriority
  1111             itemValue: doChangeProcessPriority
  1106           )
  1112           )
  1107          (MenuItem
  1113          (MenuItem
       
  1114             label: 'Inspect'
       
  1115             itemValue: doInspectProcess
       
  1116           )
       
  1117          (MenuItem
  1108             label: '-'
  1118             label: '-'
  1109           )
  1119           )
  1110          (MenuItem
  1120          (MenuItem
  1111             label: 'Abort'
  1121             label: 'Abort'
  1112             itemValue: doAbort
  1122             itemValue: doAbort
  1232         nil
  1242         nil
  1233         nil
  1243         nil
  1234       )
  1244       )
  1235 ! !
  1245 ! !
  1236 
  1246 
       
  1247 
  1237 !DebugView class methodsFor:'misc'!
  1248 !DebugView class methodsFor:'misc'!
  1238 
  1249 
  1239 interestingContextFrom:aContext
  1250 interestingContextFrom:aContext
  1240     "return an interesting context to be shown in an error notifier.
  1251     "return an interesting context to be shown in an error notifier.
  1241      We move up the calling chain, skipping intermediate Signal
  1252      We move up the calling chain, skipping intermediate Signal
  1491 
  1502 
  1492     "Created: / 17-11-2001 / 20:37:49 / cg"
  1503     "Created: / 17-11-2001 / 20:37:49 / cg"
  1493     "Modified: / 08-07-2011 / 13:15:49 / cg"
  1504     "Modified: / 08-07-2011 / 13:15:49 / cg"
  1494 ! !
  1505 ! !
  1495 
  1506 
       
  1507 
  1496 !DebugView methodsFor:'basic'!
  1508 !DebugView methodsFor:'basic'!
  1497 
  1509 
  1498 enableDisableActions
  1510 enableDisableActions
  1499     |m|
  1511     |m|
  1500 
  1512 
  2264     sendButton turnOffWithoutRedraw.
  2276     sendButton turnOffWithoutRedraw.
  2265 
  2277 
  2266     "Created: / 16.11.2001 / 17:36:18 / cg"
  2278     "Created: / 16.11.2001 / 17:36:18 / cg"
  2267 ! !
  2279 ! !
  2268 
  2280 
       
  2281 
  2269 !DebugView methodsFor:'help'!
  2282 !DebugView methodsFor:'help'!
  2270 
  2283 
  2271 flyByHelpDependsOnPositionIn:aView
  2284 flyByHelpDependsOnPositionIn:aView
  2272     "subclasses where the help-text depends upon the pointer position might
  2285     "subclasses where the help-text depends upon the pointer position might
  2273      want to redefine this"
  2286      want to redefine this"
  2460     ^ nil
  2473     ^ nil
  2461 
  2474 
  2462     "Modified: 29.8.1995 / 23:38:54 / claus"
  2475     "Modified: 29.8.1995 / 23:38:54 / claus"
  2463     "Modified: 4.3.1997 / 01:54:03 / cg"
  2476     "Modified: 4.3.1997 / 01:54:03 / cg"
  2464 ! !
  2477 ! !
       
  2478 
  2465 
  2479 
  2466 !DebugView methodsFor:'initialization & release'!
  2480 !DebugView methodsFor:'initialization & release'!
  2467 
  2481 
  2468 addToCurrentProject
  2482 addToCurrentProject
  2469     "ignored here"
  2483     "ignored here"
  3143                     with:(osPidString ? ''))
  3157                     with:(osPidString ? ''))
  3144     ].
  3158     ].
  3145 
  3159 
  3146     "Modified: / 06-07-2006 / 12:43:19 / cg"
  3160     "Modified: / 06-07-2006 / 12:43:19 / cg"
  3147 ! !
  3161 ! !
       
  3162 
  3148 
  3163 
  3149 !DebugView methodsFor:'interrupt handling'!
  3164 !DebugView methodsFor:'interrupt handling'!
  3150 
  3165 
  3151 contextInterrupt
  3166 contextInterrupt
  3152     DebuggingDebugger == true ifTrue:[
  3167     DebuggingDebugger == true ifTrue:[
  3803 
  3818 
  3804     "Created: / 14-10-1996 / 12:53:39 / cg"
  3819     "Created: / 14-10-1996 / 12:53:39 / cg"
  3805     "Modified: / 20-07-2012 / 15:26:26 / cg"
  3820     "Modified: / 20-07-2012 / 15:26:26 / cg"
  3806 ! !
  3821 ! !
  3807 
  3822 
       
  3823 
  3808 !DebugView methodsFor:'menu & button actions'!
  3824 !DebugView methodsFor:'menu & button actions'!
  3809 
  3825 
  3810 addBrowserBookmark
  3826 addBrowserBookmark
  3811     "add a browser-bookmark for the selected contexts method"
  3827     "add a browser-bookmark for the selected contexts method"
  3812 
  3828 
  4425     restart ifTrue:[
  4441     restart ifTrue:[
  4426         self doRestart
  4442         self doRestart
  4427     ]
  4443     ]
  4428 
  4444 
  4429     "Modified: / 23-03-2012 / 09:49:31 / cg"
  4445     "Modified: / 23-03-2012 / 09:49:31 / cg"
       
  4446 !
       
  4447 
       
  4448 doInspectProcess
       
  4449     (inspectedProcess ? Processor activeProcess) inspect.
  4430 !
  4450 !
  4431 
  4451 
  4432 doMicroSend
  4452 doMicroSend
  4433     "single send; reenter with next message send"
  4453     "single send; reenter with next message send"
  4434 
  4454 
  5205     ]
  5225     ]
  5206 
  5226 
  5207     "Modified: / 19-07-2012 / 11:53:30 / cg"
  5227     "Modified: / 19-07-2012 / 11:53:30 / cg"
  5208 ! !
  5228 ! !
  5209 
  5229 
       
  5230 
  5210 !DebugView methodsFor:'menu & button actions-breakpoints'!
  5231 !DebugView methodsFor:'menu & button actions-breakpoints'!
  5211 
  5232 
  5212 addBreakpoint
  5233 addBreakpoint
  5213     "add a breakpoint on the selected contexts method - if any"
  5234     "add a breakpoint on the selected contexts method - if any"
  5214 
  5235 
  5438 !
  5459 !
  5439 
  5460 
  5440 stopIgnoringHalts
  5461 stopIgnoringHalts
  5441     self class stopIgnoringHalts
  5462     self class stopIgnoringHalts
  5442 ! !
  5463 ! !
       
  5464 
  5443 
  5465 
  5444 !DebugView methodsFor:'private'!
  5466 !DebugView methodsFor:'private'!
  5445 
  5467 
  5446 abortAllIsHandled
  5468 abortAllIsHandled
  5447     ^ AbortAllOperationWantedQuery query
  5469     ^ AbortAllOperationWantedQuery query
  5891     aBlock value:nmBold , ' is not in scope of selected context' value:nil.
  5913     aBlock value:nmBold , ' is not in scope of selected context' value:nil.
  5892 
  5914 
  5893     "Modified: / 18-01-2011 / 17:57:34 / cg"
  5915     "Modified: / 18-01-2011 / 17:57:34 / cg"
  5894 ! !
  5916 ! !
  5895 
  5917 
       
  5918 
  5896 !DebugView methodsFor:'private queries'!
  5919 !DebugView methodsFor:'private queries'!
  5897 
  5920 
  5898 canBrowseClassHierarchy
  5921 canBrowseClassHierarchy
  5899     |m|
  5922     |m|
  5900 
  5923 
  6013 !
  6036 !
  6014 
  6037 
  6015 setOfHiddenCallingSelectors:aCollectionOfSymbols
  6038 setOfHiddenCallingSelectors:aCollectionOfSymbols
  6016     setOfHiddenCallingSelectors := aCollectionOfSymbols
  6039     setOfHiddenCallingSelectors := aCollectionOfSymbols
  6017 ! !
  6040 ! !
       
  6041 
  6018 
  6042 
  6019 !DebugView methodsFor:'private-breakpoints'!
  6043 !DebugView methodsFor:'private-breakpoints'!
  6020 
  6044 
  6021 addIgnoredHaltForCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey forAll:aBoolean
  6045 addIgnoredHaltForCount:countOrNil orTimeDuration:dTOrNil orUntilShiftKey:untilShiftKey forAll:aBoolean
  6022     |haltingContext haltingMethod lineNrOfHalt|
  6046     |haltingContext haltingMethod lineNrOfHalt|
  6099     ^ ignoreBreakpoints
  6123     ^ ignoreBreakpoints
  6100 
  6124 
  6101     "Created: / 17.11.2001 / 18:20:16 / cg"
  6125     "Created: / 17.11.2001 / 18:20:16 / cg"
  6102 ! !
  6126 ! !
  6103 
  6127 
       
  6128 
  6104 !DebugView methodsFor:'private-cache handling'!
  6129 !DebugView methodsFor:'private-cache handling'!
  6105 
  6130 
  6106 cacheMyself
  6131 cacheMyself
  6107     "remember myself for next debug session"
  6132     "remember myself for next debug session"
  6108 
  6133 
  6169     ].
  6194     ].
  6170 
  6195 
  6171     "Modified: 31.7.1997 / 21:20:11 / cg"
  6196     "Modified: 31.7.1997 / 21:20:11 / cg"
  6172 ! !
  6197 ! !
  6173 
  6198 
       
  6199 
  6174 !DebugView methodsFor:'private-code view'!
  6200 !DebugView methodsFor:'private-code view'!
  6175 
  6201 
  6176 codeAspect
  6202 codeAspect
  6177     ^ SyntaxHighlighter codeAspectMethod
  6203     ^ SyntaxHighlighter codeAspectMethod
  6178 
  6204 
  6179     "Created: / 27-07-2011 / 13:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  6205     "Created: / 27-07-2011 / 13:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  6180     "Modified: / 27-07-2012 / 22:20:27 / cg"
  6206     "Modified: / 27-07-2012 / 22:20:27 / cg"
  6181 ! !
  6207 ! !
       
  6208 
  6182 
  6209 
  6183 !DebugView methodsFor:'private-context handling'!
  6210 !DebugView methodsFor:'private-context handling'!
  6184 
  6211 
  6185 contextListEntryFor:aContext
  6212 contextListEntryFor:aContext
  6186     ^ Error
  6213     ^ Error
  6922 
  6949 
  6923     "Created: / 17-11-2001 / 19:34:20 / cg"
  6950     "Created: / 17-11-2001 / 19:34:20 / cg"
  6924     "Modified: / 27-07-2012 / 17:26:54 / cg"
  6951     "Modified: / 27-07-2012 / 17:26:54 / cg"
  6925 ! !
  6952 ! !
  6926 
  6953 
       
  6954 
  6927 !DebugView methodsFor:'private-control loop'!
  6955 !DebugView methodsFor:'private-control loop'!
  6928 
  6956 
  6929 controlLoop
  6957 controlLoop
  6930     "this is a kludge:
  6958     "this is a kludge:
  6931         start a dispatchloop which exits when
  6959         start a dispatchloop which exits when
  7130     catchBlock := nil.
  7158     catchBlock := nil.
  7131 
  7159 
  7132     "Created: / 24-11-1995 / 20:33:45 / cg"
  7160     "Created: / 24-11-1995 / 20:33:45 / cg"
  7133     "Modified: / 26-09-2012 / 15:03:39 / cg"
  7161     "Modified: / 26-09-2012 / 15:03:39 / cg"
  7134 ! !
  7162 ! !
       
  7163 
  7135 
  7164 
  7136 !DebugView methodsFor:'user interaction'!
  7165 !DebugView methodsFor:'user interaction'!
  7137 
  7166 
  7138 checkIfCodeIsReallyModified
  7167 checkIfCodeIsReallyModified
  7139     |source|
  7168     |source|
  8035     "Created: / 14-08-1997 / 20:15:00 / cg"
  8064     "Created: / 14-08-1997 / 20:15:00 / cg"
  8036     "Modified: / 05-10-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  8065     "Modified: / 05-10-2011 / 11:55:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  8037     "Modified: / 23-07-2012 / 12:23:49 / cg"
  8066     "Modified: / 23-07-2012 / 12:23:49 / cg"
  8038 ! !
  8067 ! !
  8039 
  8068 
       
  8069 
  8040 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'accessing'!
  8070 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'accessing'!
  8041 
  8071 
  8042 ignoreCount:something
  8072 ignoreCount:something
  8043     ignoreCount := something.
  8073     ignoreCount := something.
  8044 !
  8074 !
  8050 ignoreUntilShiftKeyPressed:aBoolean
  8080 ignoreUntilShiftKeyPressed:aBoolean
  8051     ignoreUntilShiftKeyPressed := aBoolean.
  8081     ignoreUntilShiftKeyPressed := aBoolean.
  8052 
  8082 
  8053     "Created: / 27-01-2012 / 11:35:23 / cg"
  8083     "Created: / 27-01-2012 / 11:35:23 / cg"
  8054 ! !
  8084 ! !
       
  8085 
  8055 
  8086 
  8056 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'misc'!
  8087 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'misc'!
  8057 
  8088 
  8058 decrementIgnoreCount
  8089 decrementIgnoreCount
  8059     ignoreCount notNil ifTrue:[
  8090     ignoreCount notNil ifTrue:[
  8060         ignoreCount > 0 ifTrue:[
  8091         ignoreCount > 0 ifTrue:[
  8061             ignoreCount := ignoreCount - 1
  8092             ignoreCount := ignoreCount - 1
  8062         ]
  8093         ]
  8063     ]
  8094     ]
  8064 ! !
  8095 ! !
       
  8096 
  8065 
  8097 
  8066 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'!
  8098 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'printing'!
  8067 
  8099 
  8068 printConditionOn:aStream
  8100 printConditionOn:aStream
  8069     ignoreUntilShiftKeyPressed == true ifTrue:[
  8101     ignoreUntilShiftKeyPressed == true ifTrue:[
  8090 
  8122 
  8091     "Modified: / 27-01-2012 / 11:43:10 / cg"
  8123     "Modified: / 27-01-2012 / 11:43:10 / cg"
  8092     "Created: / 06-03-2012 / 12:41:10 / cg"
  8124     "Created: / 06-03-2012 / 12:41:10 / cg"
  8093 ! !
  8125 ! !
  8094 
  8126 
       
  8127 
  8095 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'queries'!
  8128 !DebugView::IgnoredHaltOrBreakpoint methodsFor:'queries'!
  8096 
  8129 
  8097 haltIgnoredInfoString
  8130 haltIgnoredInfoString
  8098     "some string describing why and how this halt is ignored;
  8131     "some string describing why and how this halt is ignored;
  8099      nil if not ignored"
  8132      nil if not ignored"
  8165 
  8198 
  8166     ^ true
  8199     ^ true
  8167 
  8200 
  8168     "Modified: / 27-01-2012 / 11:36:01 / cg"
  8201     "Modified: / 27-01-2012 / 11:36:01 / cg"
  8169 ! !
  8202 ! !
       
  8203 
  8170 
  8204 
  8171 !DebugView::IgnoredHalt methodsFor:'accessing'!
  8205 !DebugView::IgnoredHalt methodsFor:'accessing'!
  8172 
  8206 
  8173 method
  8207 method
  8174     |m|
  8208     |m|
  8201     lineNumber := lineNumberArg.
  8235     lineNumber := lineNumberArg.
  8202 
  8236 
  8203     "Modified: / 08-05-2011 / 10:28:41 / cg"
  8237     "Modified: / 08-05-2011 / 10:28:41 / cg"
  8204 ! !
  8238 ! !
  8205 
  8239 
       
  8240 
  8206 !DebugView::IgnoredHalt methodsFor:'printing'!
  8241 !DebugView::IgnoredHalt methodsFor:'printing'!
  8207 
  8242 
  8208 printOn:aStream
  8243 printOn:aStream
  8209     |method|
  8244     |method|
  8210 
  8245 
  8222     self printConditionOn:aStream.
  8257     self printConditionOn:aStream.
  8223 
  8258 
  8224     "Modified: / 27-07-2012 / 23:04:42 / cg"
  8259     "Modified: / 27-07-2012 / 23:04:42 / cg"
  8225 ! !
  8260 ! !
  8226 
  8261 
       
  8262 
  8227 !DebugView::IgnoredHalt methodsFor:'queries'!
  8263 !DebugView::IgnoredHalt methodsFor:'queries'!
  8228 
  8264 
  8229 isActive
  8265 isActive
  8230     "true if this ignore-entry is still active"
  8266     "true if this ignore-entry is still active"
  8231 
  8267 
  8251     "/ Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
  8287     "/ Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
  8252 
  8288 
  8253     ^ self isHaltIgnored
  8289     ^ self isHaltIgnored
  8254 ! !
  8290 ! !
  8255 
  8291 
       
  8292 
  8256 !DebugView::IgnoredBreakpoint methodsFor:'accessing'!
  8293 !DebugView::IgnoredBreakpoint methodsFor:'accessing'!
  8257 
  8294 
  8258 parameter
  8295 parameter
  8259     ^ parameter
  8296     ^ parameter
  8260 !
  8297 !
  8261 
  8298 
  8262 parameter:something
  8299 parameter:something
  8263     parameter := something.
  8300     parameter := something.
  8264 ! !
  8301 ! !
  8265 
  8302 
       
  8303 
  8266 !DebugView::IgnoredBreakpoint methodsFor:'printing'!
  8304 !DebugView::IgnoredBreakpoint methodsFor:'printing'!
  8267 
  8305 
  8268 printOn:aStream
  8306 printOn:aStream
  8269     aStream nextPutAll:'Ignore breakpoint:#', parameter.
  8307     aStream nextPutAll:'Ignore breakpoint:#', parameter.
  8270     self printConditionOn:aStream.
  8308     self printConditionOn:aStream.
  8271 
  8309 
  8272     "Created: / 06-03-2012 / 12:42:10 / cg"
  8310     "Created: / 06-03-2012 / 12:42:10 / cg"
  8273 ! !
  8311 ! !
  8274 
  8312 
       
  8313 
  8275 !DebugView::IgnoredBreakpoint methodsFor:'queries'!
  8314 !DebugView::IgnoredBreakpoint methodsFor:'queries'!
  8276 
  8315 
  8277 isForBreakpointWithParameter
  8316 isForBreakpointWithParameter
  8278     ^ true
  8317     ^ true
  8279 
  8318 
  8284     ^ paramArg = parameter
  8323     ^ paramArg = parameter
  8285 
  8324 
  8286     "Created: / 06-03-2012 / 14:36:21 / cg"
  8325     "Created: / 06-03-2012 / 14:36:21 / cg"
  8287 ! !
  8326 ! !
  8288 
  8327 
       
  8328 
  8289 !DebugView class methodsFor:'documentation'!
  8329 !DebugView class methodsFor:'documentation'!
  8290 
  8330 
  8291 version
  8331 version
  8292     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.579 2013-03-28 15:04:49 cg Exp $'
  8332     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.581 2013-04-16 16:20:09 cg Exp $'
  8293 !
  8333 !
  8294 
  8334 
  8295 version_CVS
  8335 version_CVS
  8296     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.579 2013-03-28 15:04:49 cg Exp $'
  8336     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.581 2013-04-16 16:20:09 cg Exp $'
  8297 !
  8337 !
  8298 
  8338 
  8299 version_HG
  8339 version_HG
  8300 
  8340 
  8301     ^ '$Changeset: <not expanded> $'
  8341     ^ '$Changeset: <not expanded> $'