Fix `VDBInstructionListApplication` update w.r.t running threads
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 11 Jun 2019 11:44:32 +0100
changeset 168 6a4863394260
parent 167 16cd2d937309
child 169 807f5f62c910
Fix `VDBInstructionListApplication` update w.r.t running threads Instruction list invalidates itself in various places in order to always show up-to-date data, in particular currently executed instruction. To do so it updates thread's stack so frame objects have up-to-date PC. However, this fails when thread is running, so check for that before updating.
VDBInstructionListApplication.st
--- a/VDBInstructionListApplication.st	Tue Jun 11 11:40:12 2019 +0100
+++ b/VDBInstructionListApplication.st	Tue Jun 11 11:44:32 2019 +0100
@@ -482,13 +482,14 @@
     "/ First, force update of )cached) frames to get 
     "/ updated PC.
     frame := self frame.
-    frame notNil ifTrue:[
-        frame thread stack        
+    (frame notNil and:[frame thread isRunning not]) ifTrue:[
+        GDBError catch: [ frame thread stack ]
     ].    
     super delayedInvalidateInternalList
 
     "Created: / 03-10-2018 / 12:10:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 10-06-2019 / 12:45:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-06-2019 / 15:59:22 / jv"
+    "Modified: / 12-06-2019 / 16:26:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 delayedUpdateBasicBlocks