Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
authorJan Vrany <jan.vrany@fit.cvut.cz>
Mon, 21 Jan 2019 21:14:27 +0000
changeset 140 3009b7498176
parent 139 c619cc458fb1
child 141 385e05acdd8c
Fix `VDBBreakpointPresenter` for watchpoints and pending breakpoints
VDBBreakpointPresenter.st
--- a/VDBBreakpointPresenter.st	Mon Jan 21 14:43:03 2019 +0000
+++ b/VDBBreakpointPresenter.st	Mon Jan 21 21:14:27 2019 +0000
@@ -75,25 +75,49 @@
 label
     ^ String streamContents:[ :aStream |
         aStream nextPutAll:(breakpoint enabled ifTrue:[ 'e ' ] ifFalse:[ 'd ' ]).
-        breakpoint number printOn:aStream.
-        aStream nextPutAll:', '.
-        breakpoint func notNil ifTrue:[ 
-            aStream nextPutAll:'in '.
-            breakpoint func printOn:aStream.   
-            aStream nextPutAll:'(), '. 
-        ].
-        breakpoint file notNil ifTrue:[
-            breakpoint file printOn:aStream.
-            aStream nextPut:$:.
-            breakpoint line printOn:aStream.
-        ] ifFalse:[ 
-            aStream nextPutAll:'at 0x'.
-            breakpoint addr printOn: aStream radix: 16
-        ].                                                  
+
+        (breakpoint type = 'watchpoint' or:[ breakpoint type = 'hw watchpoint' ]) ifTrue:[ 
+            | location |
+
+            aStream nextPutAll: 'W '.
+            breakpoint number printOn:aStream.
+            aStream nextPutAll:', '.
+
+            aStream nextPutAll:'at '.
+            location := breakpoint propertyAt: 'what'.
+            aStream nextPutAll: location ? '??'.
+        ] ifFalse:[
+            aStream nextPutAll: 'B '.
+            breakpoint number printOn:aStream.
+            aStream nextPutAll:', '.
+    
+            breakpoint func notNil ifTrue:[ 
+                aStream nextPutAll:'in '.
+                breakpoint func printOn:aStream.   
+                aStream nextPutAll:'(), '. 
+            ].
+            breakpoint file notNil ifTrue:[
+                breakpoint file printOn:aStream.
+                aStream nextPut:$:.
+                breakpoint line printOn:aStream.
+            ] ifFalse:[ 
+                | addr |
+
+                addr := breakpoint addr.
+                addr isNil ifTrue:[ 
+                    aStream nextPutAll:'at ??'.
+                ] ifFalse:[addr isInteger ifTrue:[
+                    aStream nextPutAll:'at 0x'.
+                    addr printOn: aStream radix: 16
+                ] ifFalse:[ 
+                    addr printOn: aStream
+                ]].
+            ].                                                  
+        ]
     ].
 
     "Created: / 10-07-2017 / 13:30:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 16-01-2019 / 23:59:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 21-01-2019 / 21:13:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 subject