DebugView.st
changeset 2589 2342403139a7
parent 2581 6593d7ee2f3e
child 2591 613b7c72371c
--- a/DebugView.st	Mon Feb 07 12:34:49 2000 +0100
+++ b/DebugView.st	Mon Feb 07 12:43:32 2000 +0100
@@ -1255,7 +1255,7 @@
     "Modified: 4.3.1997 / 01:54:03 / cg"
 ! !
 
-!DebugView methodsFor:'initialize / release'!
+!DebugView methodsFor:'initialization & release'!
 
 addToCurrentProject
     "ignored here"
@@ -1881,13 +1881,15 @@
                         "/ do:-loop would be very difficult.
 
                         (where receiver isBlock
-                        and:[where receiver home == steppedContext])
+                        and:[(where receiver isKindOf:Block)
+                        and:[where receiver home == steppedContext]])
                         ifTrue:[
                             anyStepBlocks := true.
                         ] ifFalse:[
                             where args do:[:arg |
                                 (arg isBlock
-                                and:[arg home == steppedContext])
+                                and:[(arg isKindOf:Block)
+                                and:[arg home == steppedContext]])
                                 ifTrue:[
                                     anyStepBlocks := true.
                                 ]
@@ -2168,7 +2170,7 @@
     con := nil
 
     "Created: / 14.10.1996 / 12:53:39 / cg"
-    "Modified: / 6.9.1998 / 21:42:28 / cg"
+    "Modified: / 4.2.2000 / 20:21:11 / cg"
 ! !
 
 !DebugView methodsFor:'menu / button actions'!
@@ -2289,18 +2291,24 @@
 browseImplementorsOf
     "open a browser on the implementors of some selector"
 
-    |initial selector|
-
-    initial := codeView selection 
-                  ifNil:[selectedContext isNil 
+    |initial selector sel|
+
+    (sel := codeView selection) notNil ifTrue:[
+        initial := BrowserView extractSelectorFrom:sel
+    ].
+    initial isNil ifTrue:[
+        initial := selectedContext isNil 
                             ifTrue:[nil]
-                            ifFalse:[selectedContext selector]].
+                            ifFalse:[selectedContext selector].
+    ].
     selector := Dialog 
                     request:'Selector to browse implementors of:'
                     initialAnswer:initial.
     selector size == 0 ifFalse:[
         SystemBrowser browseImplementorsOf:selector asSymbol.
     ]
+
+    "Modified: / 6.2.2000 / 01:05:14 / cg"
 !
 
 browseSenders
@@ -2315,18 +2323,24 @@
 browseSendersOf
     "open a browser on the senders of some selector"
 
-    |initial selector|
-
-    initial := codeView selection 
-                  ifNil:[selectedContext isNil 
+    |initial selector sel|
+
+    (sel := codeView selection) notNil ifTrue:[
+        initial := BrowserView extractSelectorFrom:sel
+    ].
+    initial isNil ifTrue:[
+        initial := selectedContext isNil 
                             ifTrue:[nil]
-                            ifFalse:[selectedContext selector]].
+                            ifFalse:[selectedContext selector].
+    ].
     selector := Dialog 
                     request:'Selector to browse senders of:'
                     initialAnswer:initial.
     selector size == 0 ifFalse:[
         SystemBrowser browseAllCallsOn:selector asSymbol.
     ]
+
+    "Modified: / 6.2.2000 / 01:05:29 / cg"
 !
 
 copyWalkbackText
@@ -3618,7 +3632,7 @@
          active group.
         "
         SignalSet anySignal handle:[:ex |
-            |answer signal|
+            |answer signal eMsg|
 
             signal := ex signal.
 
@@ -3683,8 +3697,14 @@
 
             self topView raiseDeiconified.    
 
+            eMsg := ex errorString.
+            (ex signal == MessageTracer breakpointSignal
+            or:[ex signal == Object haltSignal]) ifTrue:[
+                eMsg := eMsg , Character cr asString , 'in ' , ex suspendedContext printString
+            ].
+
             answer := Dialog 
-                        choose:('error in debugger:\' withCRs , ex errorString , '\\debug again ?' withCRs) 
+                        choose:('error in debugger:\' withCRs , eMsg , '\\debug again ?' withCRs) 
                         labels:#( 'proceed' 'cancel' 'debug' ) 
                         values:#( #proceed #cancel #debug ) 
                         default:#cancel.
@@ -3692,7 +3712,7 @@
                 'DebugView [info]: cought exception - debugging' infoPrintCR.
                 Debugger 
                     enterUnconditional:(ex suspendedContext) 
-                    withMessage:'error in debugger: ' , ex errorString
+                    withMessage:'error in debugger: ' , eMsg
                     mayProceed:true.
                 ex proceed.
             ].
@@ -3715,7 +3735,7 @@
     catchBlock := nil.
 
     "Created: / 24.11.1995 / 20:33:45 / cg"
-    "Modified: / 31.5.1999 / 15:19:45 / cg"
+    "Modified: / 6.2.2000 / 15:14:07 / cg"
 ! !
 
 !DebugView methodsFor:'user interaction'!
@@ -4239,6 +4259,6 @@
 !DebugView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.258 2000-02-02 22:36:18 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/DebugView.st,v 1.259 2000-02-07 11:43:32 cg Exp $'
 ! !
 DebugView initialize!