generate a change notification when ignore-halts changes
authorClaus Gittinger <cg@exept.de>
Wed, 28 Oct 2009 11:30:18 +0100
changeset 9093 afeec57f277e
parent 9092 6bd5d66d58cf
child 9094 51cf41fd65a2
generate a change notification when ignore-halts changes
DebugView.st
--- a/DebugView.st	Wed Oct 28 11:01:42 2009 +0100
+++ b/DebugView.st	Wed Oct 28 11:30:18 2009 +0100
@@ -492,6 +492,7 @@
         ].
         IgnoredHalts add:ign.
     ].
+    Smalltalk changed:#ignoredHalts.
 !
 
 isHaltToBeIgnoredIn:haltingMethod atLineNr:lineNrInHaltingMethod
@@ -506,7 +507,7 @@
 
     IgnoredHalts isNil ifTrue:[^ false].
 
-"/ Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
+    Transcript showCR:'halt/break in ',haltingMethod printString,' at ',lineNrInHaltingMethod printString.
     IgnoredHalts do:[:ign | 
         (ign isHaltIgnoredInMethod:haltingMethod line:lineNrInHaltingMethod) ifTrue:[
             Transcript showCR:'Debugger [info]: halt ignored in ', haltingMethod whoString.
@@ -531,7 +532,8 @@
 stopIgnoringHalts
     "forget about all ignored halts"
 
-    IgnoredHalts := nil
+    IgnoredHalts := nil.
+    Smalltalk changed:#ignoredHalts.
 ! !
 
 !DebugView class methodsFor:'menu specs'!
@@ -2272,6 +2274,8 @@
 !
 
 initializeButtons1In:bpanel 
+    "creates the top button row, consisting of 'continue', 'abort', 'terminate'..."
+
     |separator|
 
     bpanel horizontalLayout:#leftMax.  "was: #left. "
@@ -2299,6 +2303,8 @@
 !
 
 initializeButtons2In:bpanel 
+    "creates the second button row, consisting of 'next', 'step', 'return'..."
+
     |separator|
 
     bpanel horizontalLayout:#leftMax.  "was: #left. "
@@ -2518,7 +2524,7 @@
 
 initializeNextButtonIn:bpanel 
     nextButton := Button 
-                label:(resources string:'Next')
+                label:(resources string:'Debug_Next')
                 action:[
                     stepButton turnOff.
                     self doNext
@@ -2578,7 +2584,7 @@
 
 initializeStepButtonIn:bpanel 
     stepButton := Button 
-                label:(resources string:'Step')
+                label:(resources string:'Debug_Step')
                 action:[
                     stepButton turnOff.
                     self doStep
@@ -2590,7 +2596,7 @@
 
 initializeTerminateButtonIn:bpanel 
     terminateButton := Button 
-                label:(resources string:'Terminate')
+                label:(resources string:'Debug_Terminate')
                 action:[
                     terminateButton turnOffWithoutRedraw.
                     self doTerminate
@@ -5007,17 +5013,18 @@
     |c haltingMethod lineNrInHaltingMethod|
 
     "/ should a halt be ignored ?
-    IgnoredHalts isNil ifTrue:[^ false].
+    IgnoredHalts isNil ifTrue:['1' infoPrintCR. ^ false].
 
     c := thisContext findNextContextWithSelector:#halt or:#halt: or:nil.
     c isNil ifTrue:[
         c := thisContext findNextContextWithSelector:#breakPoint: or:#breakPoint:info: or:nil.
     ].
-    c isNil ifTrue:[^ false].
+    c isNil ifTrue:['2' infoPrintCR. ^ false].
 
     c := c sender.
     haltingMethod := c method.
     lineNrInHaltingMethod := c lineNumber.
+Transcript showCR:c.
     ^ self class 
         isHaltToBeIgnoredIn:haltingMethod 
         atLineNr:lineNrInHaltingMethod
@@ -6666,7 +6673,8 @@
     ^ weakMethodHolder at:1 
 !
 
-method:methodArg lineNumber:lineNumberArg 
+method:methodArg lineNumber:lineNumberArg
+    methodArg mclass isNil ifTrue:[self halt].
     weakMethodHolder := WeakArray with:methodArg.
     lineNumber := lineNumberArg.
 ! !
@@ -6681,6 +6689,32 @@
     ]
 ! !
 
+!DebugView::IgnoredHalt methodsFor:'printing'!
+
+printOn:aStream
+    self method isNil ifTrue:[
+        aStream nextPutAll:'an obsolete IgnoredHalt'.
+        ^ self
+    ].
+    aStream nextPutAll:'Ignore '.
+    self method printOn:aStream.
+    ignoreEndTime notNil ifTrue:[
+        aStream nextPutAll:'until '.
+        ignoreEndTime printOn:aStream.
+    ] ifFalse:[
+        (ignoreCount > 0) ifTrue:[
+            aStream nextPutAll:'for '.
+            ignoreCount printOn:aStream.
+        ] ifFalse:[
+            (ignoreCount < 0) ifTrue:[
+                aStream nextPutAll:'forEver'.
+            ] ifFalse:[
+                aStream nextPutAll:' no longer'.
+            ].
+        ].
+    ].
+! !
+
 !DebugView::IgnoredHalt methodsFor:'queries'!
 
 haltIgnoredInfoString
@@ -6724,9 +6758,11 @@
 !
 
 isHaltIgnoredInMethod:aMethod line:line
-"/ Transcript showCR:'ign ',aMethod printString,' at ',lineNumber printString.
+    Transcript show:'?same as ign '; show:(weakMethodHolder at:1); show:' at '; showCR:lineNumber.
+
     line = lineNumber ifFalse:[^ false].
     (weakMethodHolder at:1) == aMethod ifFalse:[^ false].
+Transcript show:'is same; ignored: '; showCR:self isHaltIgnored.
 
     ^ self isHaltIgnored
 ! !
@@ -6734,11 +6770,11 @@
 !DebugView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.477 2009-10-26 10:46:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.478 2009-10-28 10:30:18 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.477 2009-10-26 10:46:01 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.478 2009-10-28 10:30:18 cg Exp $'
 ! !
 
 DebugView initialize!