This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Don't invalidate floating varobjs
- From: Vladimir Prus <ghost at cs dot msu dot su>
- To: gdb-patches at sources dot redhat dot com
- Date: Sat, 19 Apr 2008 20:39:42 +0400
- Subject: 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)
{