From 603ba1de0bfd2aabf369a10ed8a645388e466db8 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Sat, 19 Apr 2008 16:38:25 +0000 Subject: [PATCH] * varobj.c (varobj_invalidate): Don't touch floating varobjs. --- gdb/ChangeLog | 5 +++++ gdb/varobj.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9f104fcc83..0f0db2d1c7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2008-04-19 Vladimir Prus + + * varobj.c (varobj_invalidate): Don't touch floating + varobjs. + 2008-04-19 Mark Kettenis * symtab.c: (multiple_symbols_modes, multiple_symbols_ask) diff --git a/gdb/varobj.c b/gdb/varobj.c index b27013c8b6..f3d3b5abef 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -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) {