equal
deleted
inserted
replaced
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! |