* varobj.c (varobj_invalidate): Don't touch floating
authorVladimir Prus <vladimir@codesourcery.com>
Sat, 19 Apr 2008 16:38:25 +0000 (16:38 +0000)
committerVladimir Prus <vladimir@codesourcery.com>
Sat, 19 Apr 2008 16:38:25 +0000 (16:38 +0000)
varobjs.

gdb/ChangeLog
gdb/varobj.c

index 9f104fcc83a75a03e6bd1878aa75aab366a3a058..0f0db2d1c7a4369fab3e2687ee89f3ddf38d1153 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-19  Vladimir Prus  <vladimir@codesourcery.com>
+
+       * varobj.c (varobj_invalidate): Don't touch floating
+       varobjs.
+
 2008-04-19  Mark Kettenis  <kettenis@gnu.org>
 
        * symtab.c: (multiple_symbols_modes, multiple_symbols_ask)
index b27013c8b66196d4b0814c6cfe8421941cfed0ec..f3d3b5abef637cb1fe7f2673aea4a6546770c035 100644 (file)
@@ -2773,6 +2773,11 @@ varobj_invalidate (void)
     varp = all_rootvarobj;
     while (*varp != NULL)
       {
+       /* Floating varobjs are reparsed on each stop, so we don't care if
+          the presently parsed expression refers to something that's gone.  */
+       if ((*varp)->root->floating)
+         continue;
+
         /* global var must be re-evaluated.  */     
         if ((*varp)->root->valid_block == NULL)
         {