GDBRegisterWithValue.st
changeset 248 9f09de962169
parent 238 bdf011a6482b
child 249 272bd60a849c
--- a/GDBRegisterWithValue.st	Thu Nov 18 16:03:54 2021 +0000
+++ b/GDBRegisterWithValue.st	Thu Nov 18 16:12:07 2021 +0000
@@ -128,16 +128,23 @@
     self value isInteger ifFalse: [ 
         self error: 'Compound values not supported'.
     ].
-    debugger send: (GDBMI_data_evaluate_expression arguments: (Array with: '--thread' with: frame thread id with: '--frame' with: frame level with: ('$', register name , ' = ' , (anObject asInteger printString) ))) andWait: false.
-    frame invalidate.
+    debugger 
+        send: (GDBMI_data_evaluate_expression arguments: (Array with: '--thread' with: frame thread id with: '--frame' with: frame level with: ('$', register name , ' = ' , (anObject asInteger printString) )))
+        andWithResultDo:[ :result |
+            result isDone ifTrue: [
+                frame invalidate: self.
+                changed value: true.
+            ].
+        ].
 
     "Created: / 10-09-2021 / 15:31:35 / Jan Vrany <jan.vrany@labware.com>"
-    "Modified: / 14-10-2021 / 01:24:05 / Jan Vrany <jan.vrany@labware.com>"
+    "Modified: / 18-11-2021 / 12:13:34 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 valueString
     valueString isNil ifTrue: [
         | result registers |
+
         result := debugger send: (GDBMI_data_list_register_values new arguments: (Array with: '--thread' with: frame thread id with: '--frame' with: frame level with: 'r' with: register number)).
         registers := result propertyAt: #'register-values'.     
         self assert: registers size == 1.
@@ -149,7 +156,7 @@
     ^ valueString
 
     "Created: / 10-09-2021 / 14:14:14 / Jan Vrany <jan.vrany@labware.com>"
-    "Modified: / 10-09-2021 / 15:58:15 / Jan Vrany <jan.vrany@labware.com>"
+    "Modified (format): / 18-11-2021 / 12:44:06 / Jan Vrany <jan.vrany@labware.com>"
 ! !
 
 !GDBRegisterWithValue methodsFor:'initialization'!
@@ -163,7 +170,8 @@
             changes := frame registersChanges.
             change := changes detect:[:each | each number = self number ] ifNone:[ nil ].
             (change notNil and:[change value ~= valueString]) ifTrue:[ 
-                valueString := change value.
+                valueString := change valueString.
+                value := nil.
                 true
             ] ifFalse:[ 
                 false
@@ -174,6 +182,7 @@
     ].
 
     "Created: / 27-09-2018 / 15:11:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 18-11-2021 / 14:04:58 / Jan Vrany <jan.vrany@labware.com>"
 !
 
 setFrame: aGDBFrame