This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Don't invalidate floating varobjs


I've checked in the below patch; I've nothing to add to the comment in
the patch itself.

- Volodya

Index: gdb/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.9295
diff -u -p -r1.9295 ChangeLog
--- gdb/ChangeLog	19 Apr 2008 11:39:50 -0000	1.9295
+++ gdb/ChangeLog	19 Apr 2008 16:37:30 -0000
@@ -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: gdb/varobj.c
===================================================================
RCS file: /cvs/src/src/gdb/varobj.c,v
retrieving revision 1.110
diff -u -p -r1.110 varobj.c
--- gdb/varobj.c	13 Apr 2008 09:33:48 -0000	1.110
+++ gdb/varobj.c	19 Apr 2008 16:37:30 -0000
@@ -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)
         {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]