aboutsummaryrefslogtreecommitdiff
path: root/gdb/symfile.c
diff options
context:
space:
mode:
authorDenis Pilat <denis.pilat@st.com>2007-02-13 08:15:49 +0000
committerDenis Pilat <denis.pilat@st.com>2007-02-13 08:15:49 +0000
commit8756216bc74d2a014779aaebf3cbb6f220cc4583 (patch)
tree3d8f139c33a1ab5110aac49188048e58f9963c00 /gdb/symfile.c
parentb1e374737bca6da4311e2be8b0cc9133599dfad1 (diff)
downloadgdb-8756216bc74d2a014779aaebf3cbb6f220cc4583.zip
gdb-8756216bc74d2a014779aaebf3cbb6f220cc4583.tar.gz
gdb-8756216bc74d2a014779aaebf3cbb6f220cc4583.tar.bz2
2007-02-13 Denis Pilat <denis.pilat@st.com>
* varobj.h (enum varobj_update_error): New enum. * varobj.c (struct varobj_root): Add is_valid member. (varobj_get_type): Check for invalid varobj. (varobj_get_attributes): Likewise. (variable_editable):Likewise. (varobj_update): Likewise. Use varobj_update_error. (new_root_variable): Set root varobj as valid by default. (varobj_invalidate): New function. * symfile.c (clear_symtab_users): Use varobj_invalidate. * mi/mi-cmd-var.c (varobj_update_one): Change return type to void. Use varobj_update_error.
Diffstat (limited to 'gdb/symfile.c')
-rw-r--r--gdb/symfile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 1e7733b..d8ca7ca 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -52,6 +52,7 @@
#include "observer.h"
#include "exec.h"
#include "parser-defs.h"
+#include "varobj.h"
#include <sys/types.h>
#include <fcntl.h>
@@ -2602,6 +2603,10 @@ clear_symtab_users (void)
between expressions and which ought to be reset each time. */
expression_context_block = NULL;
innermost_block = NULL;
+
+ /* Varobj may refer to old symbols, perform a cleanup. */
+ varobj_invalidate ();
+
}
static void