DebugView.st
changeset 9093 afeec57f277e
parent 9078 a5b4f1a443f5
child 9094 51cf41fd65a2
equal deleted inserted replaced
9092:6bd5d66d58cf 9093:afeec57f277e
   490         (dTOrNil notNil) ifTrue:[
   490         (dTOrNil notNil) ifTrue:[
   491             ign ignoreEndTime:(Timestamp now + dTOrNil).
   491             ign ignoreEndTime:(Timestamp now + dTOrNil).
   492         ].
   492         ].
   493         IgnoredHalts add:ign.
   493         IgnoredHalts add:ign.
   494     ].
   494     ].
       
   495     Smalltalk changed:#ignoredHalts.
   495 !
   496 !
   496 
   497 
   497 isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod
   498 isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod
   498     ^ self
   499     ^ self
   499         isHaltToBeIgnoredIn:haltingMethod 
   500         isHaltToBeIgnoredIn:haltingMethod 
   504 isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod modifyEntryCount:modifyCount
   505 isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod modifyEntryCount:modifyCount
   505     "/ should a halt be ignored ?
   506     "/ should a halt be ignored ?
   506 
   507 
   507     IgnoredHalts isNil ifTrue:[^ false].
   508     IgnoredHalts isNil ifTrue:[^ false].
   508 
   509 
   509 "/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
   510     Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
   510     IgnoredHalts do:[:ign | 
   511     IgnoredHalts do:[:ign | 
   511         (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
   512         (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
   512             Transcript showCR:'Debugger [info]: halt ignored in ', haltingMethod whoString.
   513             Transcript showCR:'Debugger [info]: halt ignored in ', haltingMethod whoString.
   513             modifyCount ifTrue:[ ign decrementIgnoreCount ].
   514             modifyCount ifTrue:[ ign decrementIgnoreCount ].
   514             ign isHaltIgnored ifFalse:[
   515             ign isHaltIgnored ifFalse:[
   529 !
   530 !
   530 
   531 
   531 stopIgnoringHalts
   532 stopIgnoringHalts
   532     "forget about all ignored halts"
   533     "forget about all ignored halts"
   533 
   534 
   534     IgnoredHalts := nil
   535     IgnoredHalts := nil.
       
   536     Smalltalk changed:#ignoredHalts.
   535 ! !
   537 ! !
   536 
   538 
   537 !DebugView class methodsFor:'menu specs'!
   539 !DebugView class methodsFor:'menu specs'!
   538 
   540 
   539 menuSpec
   541 menuSpec
  2270     "Created: / 17.11.2001 / 20:56:47 / cg"
  2272     "Created: / 17.11.2001 / 20:56:47 / cg"
  2271     "Modified: / 17.11.2001 / 20:57:17 / cg"
  2273     "Modified: / 17.11.2001 / 20:57:17 / cg"
  2272 !
  2274 !
  2273 
  2275 
  2274 initializeButtons1In:bpanel 
  2276 initializeButtons1In:bpanel 
       
  2277     "creates the top button row, consisting of 'continue', 'abort', 'terminate'..."
       
  2278 
  2275     |separator|
  2279     |separator|
  2276 
  2280 
  2277     bpanel horizontalLayout:#leftMax.  "was: #left. "
  2281     bpanel horizontalLayout:#leftMax.  "was: #left. "
  2278     bpanel verticalLayout:#centerMax.
  2282     bpanel verticalLayout:#centerMax.
  2279     bpanel verticalSpace:ViewSpacing // 2.
  2283     bpanel verticalSpace:ViewSpacing // 2.
  2297     ].
  2301     ].
  2298     "Modified: / 17.11.2001 / 21:02:59 / cg"
  2302     "Modified: / 17.11.2001 / 21:02:59 / cg"
  2299 !
  2303 !
  2300 
  2304 
  2301 initializeButtons2In:bpanel 
  2305 initializeButtons2In:bpanel 
       
  2306     "creates the second button row, consisting of 'next', 'step', 'return'..."
       
  2307 
  2302     |separator|
  2308     |separator|
  2303 
  2309 
  2304     bpanel horizontalLayout:#leftMax.  "was: #left. "
  2310     bpanel horizontalLayout:#leftMax.  "was: #left. "
  2305     bpanel verticalLayout:#centerMax.
  2311     bpanel verticalLayout:#centerMax.
  2306     bpanel verticalSpace:ViewSpacing // 2.
  2312     bpanel verticalSpace:ViewSpacing // 2.
  2516     ^ hpanel
  2522     ^ hpanel
  2517 !
  2523 !
  2518 
  2524 
  2519 initializeNextButtonIn:bpanel 
  2525 initializeNextButtonIn:bpanel 
  2520     nextButton := Button 
  2526     nextButton := Button 
  2521                 label:(resources string:'Next')
  2527                 label:(resources string:'Debug_Next')
  2522                 action:[
  2528                 action:[
  2523                     stepButton turnOff.
  2529                     stepButton turnOff.
  2524                     self doNext
  2530                     self doNext
  2525                 ]
  2531                 ]
  2526                 in:bpanel.
  2532                 in:bpanel.
  2576     "Created: / 17.11.2001 / 21:01:20 / cg"
  2582     "Created: / 17.11.2001 / 21:01:20 / cg"
  2577 !
  2583 !
  2578 
  2584 
  2579 initializeStepButtonIn:bpanel 
  2585 initializeStepButtonIn:bpanel 
  2580     stepButton := Button 
  2586     stepButton := Button 
  2581                 label:(resources string:'Step')
  2587                 label:(resources string:'Debug_Step')
  2582                 action:[
  2588                 action:[
  2583                     stepButton turnOff.
  2589                     stepButton turnOff.
  2584                     self doStep
  2590                     self doStep
  2585                 ]
  2591                 ]
  2586                 in:bpanel.
  2592                 in:bpanel.
  2588     "Created: / 17.11.2001 / 21:00:13 / cg"
  2594     "Created: / 17.11.2001 / 21:00:13 / cg"
  2589 !
  2595 !
  2590 
  2596 
  2591 initializeTerminateButtonIn:bpanel 
  2597 initializeTerminateButtonIn:bpanel 
  2592     terminateButton := Button 
  2598     terminateButton := Button 
  2593                 label:(resources string:'Terminate')
  2599                 label:(resources string:'Debug_Terminate')
  2594                 action:[
  2600                 action:[
  2595                     terminateButton turnOffWithoutRedraw.
  2601                     terminateButton turnOffWithoutRedraw.
  2596                     self doTerminate
  2602                     self doTerminate
  2597                 ]
  2603                 ]
  2598                 in:bpanel.
  2604                 in:bpanel.
  5005 
  5011 
  5006 isHaltToBeIgnored
  5012 isHaltToBeIgnored
  5007     |c haltingMethod lineNrInHaltingMethod|
  5013     |c haltingMethod lineNrInHaltingMethod|
  5008 
  5014 
  5009     "/ should a halt be ignored ?
  5015     "/ should a halt be ignored ?
  5010     IgnoredHalts isNil ifTrue:[^ false].
  5016     IgnoredHalts isNil ifTrue:['1' infoPrintCR. ^ false].
  5011 
  5017 
  5012     c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
  5018     c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
  5013     c isNil ifTrue:[
  5019     c isNil ifTrue:[
  5014         c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
  5020         c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
  5015     ].
  5021     ].
  5016     c isNil ifTrue:[^ false].
  5022     c isNil ifTrue:['2' infoPrintCR. ^ false].
  5017 
  5023 
  5018     c := c sender.
  5024     c := c sender.
  5019     haltingMethod := c method.
  5025     haltingMethod := c method.
  5020     lineNrInHaltingMethod := c lineNumber.
  5026     lineNrInHaltingMethod := c lineNumber.
       
  5027 Transcript showCR:c.
  5021     ^ self class 
  5028     ^ self class 
  5022         isHaltToBeIgnoredIn:haltingMethod 
  5029         isHaltToBeIgnoredIn:haltingMethod 
  5023         atLineNr:lineNrInHaltingMethod
  5030         atLineNr:lineNrInHaltingMethod
  5024         modifyEntryCount:true.
  5031         modifyEntryCount:true.
  5025 !
  5032 !
  6664 
  6671 
  6665 method
  6672 method
  6666     ^ weakMethodHolder at:1 
  6673     ^ weakMethodHolder at:1 
  6667 !
  6674 !
  6668 
  6675 
  6669 method:methodArg lineNumber:lineNumberArg 
  6676 method:methodArg lineNumber:lineNumberArg
       
  6677     methodArg mclass isNil ifTrue:[self halt].
  6670     weakMethodHolder := WeakArray with:methodArg.
  6678     weakMethodHolder := WeakArray with:methodArg.
  6671     lineNumber := lineNumberArg.
  6679     lineNumber := lineNumberArg.
  6672 ! !
  6680 ! !
  6673 
  6681 
  6674 !DebugView::IgnoredHalt methodsFor:'misc'!
  6682 !DebugView::IgnoredHalt methodsFor:'misc'!
  6679             ignoreCount := ignoreCount - 1
  6687             ignoreCount := ignoreCount - 1
  6680         ]
  6688         ]
  6681     ]
  6689     ]
  6682 ! !
  6690 ! !
  6683 
  6691 
       
  6692 !DebugView::IgnoredHalt methodsFor:'printing'!
       
  6693 
       
  6694 printOn:aStream
       
  6695     self method isNil ifTrue:[
       
  6696         aStream nextPutAll:'an obsolete IgnoredHalt'.
       
  6697         ^ self
       
  6698     ].
       
  6699     aStream nextPutAll:'Ignore '.
       
  6700     self method printOn:aStream.
       
  6701     ignoreEndTime notNil ifTrue:[
       
  6702         aStream nextPutAll:'until '.
       
  6703         ignoreEndTime printOn:aStream.
       
  6704     ] ifFalse:[
       
  6705         (ignoreCount > 0) ifTrue:[
       
  6706             aStream nextPutAll:'for '.
       
  6707             ignoreCount printOn:aStream.
       
  6708         ] ifFalse:[
       
  6709             (ignoreCount < 0) ifTrue:[
       
  6710                 aStream nextPutAll:'forEver'.
       
  6711             ] ifFalse:[
       
  6712                 aStream nextPutAll:' no longer'.
       
  6713             ].
       
  6714         ].
       
  6715     ].
       
  6716 ! !
       
  6717 
  6684 !DebugView::IgnoredHalt methodsFor:'queries'!
  6718 !DebugView::IgnoredHalt methodsFor:'queries'!
  6685 
  6719 
  6686 haltIgnoredInfoString
  6720 haltIgnoredInfoString
  6687     "some string describing why and how this halt is ignored;
  6721     "some string describing why and how this halt is ignored;
  6688      nil if not ignored"
  6722      nil if not ignored"
  6722 
  6756 
  6723     ^ true
  6757     ^ true
  6724 !
  6758 !
  6725 
  6759 
  6726 isHaltIgnoredInMethod:aMethod line:line
  6760 isHaltIgnoredInMethod:aMethod line:line
  6727 "/ Transcript showCR:'ign ',aMethod printString,' at ',lineNumber printString.
  6761     Transcript show:'?same as ign '; show:(weakMethodHolder at:1); show:' at '; showCR:lineNumber.
       
  6762 
  6728     line = lineNumber ifFalse:[^ false].
  6763     line = lineNumber ifFalse:[^ false].
  6729     (weakMethodHolder at:1) == aMethod ifFalse:[^ false].
  6764     (weakMethodHolder at:1) == aMethod ifFalse:[^ false].
       
  6765 Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
  6730 
  6766 
  6731     ^ self isHaltIgnored
  6767     ^ self isHaltIgnored
  6732 ! !
  6768 ! !
  6733 
  6769 
  6734 !DebugView class methodsFor:'documentation'!
  6770 !DebugView class methodsFor:'documentation'!
  6735 
  6771 
  6736 version
  6772 version
  6737     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.477 2009-10-26 10:46:01 cg Exp $'
  6773     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.478 2009-10-28 10:30:18 cg Exp $'
  6738 !
  6774 !
  6739 
  6775 
  6740 version_CVS
  6776 version_CVS
  6741     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.477 2009-10-26 10:46:01 cg Exp $'
  6777     ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.478 2009-10-28 10:30:18 cg Exp $'
  6742 ! !
  6778 ! !
  6743 
  6779 
  6744 DebugView initialize!
  6780 DebugView initialize!