diff options
author | Yao Qi <yao@codesourcery.com> | 2013-10-17 21:15:21 +0800 |
---|---|---|
committer | Tom Tromey <tromey@sourceware.org> | 2013-10-25 14:03:02 +0000 |
commit | a53b64eaa0816d9136f92b51f5e0d23e718b84f3 (patch) | |
tree | 5fe5ffa5cc606ccf84d43873dcf764c8b714f510 /gdb/c-lang.c | |
parent | 38095c27fb67d4828c0b55f37714fe5c8e7dd9cd (diff) | |
download | gdb-a53b64eaa0816d9136f92b51f5e0d23e718b84f3.zip gdb-a53b64eaa0816d9136f92b51f5e0d23e718b84f3.tar.gz gdb-a53b64eaa0816d9136f92b51f5e0d23e718b84f3.tar.bz2 |
New field la_varobj_ops in struct language_defn
This is a follow-up series to move language stuff out of varobj.c.
This patch adds a new field la_varobj_ops in struct language_defn so
that each language has varobj-related options. Not every language
supports varobj, and the operations are identical to operations of c
languages.
'struct language_defn' is the ideal place to save all language-related
operations. After this patch, some cleanups can be done in patch 2/2,
which removes language-related stuff completely from varobj.c.
Regression tested on x86_64-linux.
gdb:
2013-10-25 Yao Qi <yao@codesourcery.com>
* language.h (struct lang_varobj_ops): Declare.
(struct language_defn) <la_varobj_ops>: New field.
* ada-lang.c: Include "varobj.h"
(defn ada_language_defn): Initialize field 'la_varobj_ops' by
ada_varobj_ops.
* c-lang.c: Include "varobj.h"
(c_language_defn): Initialize field 'la_varobj_ops' by
c_varobj_ops.
(cplus_language_defn): Initialize field 'la_varobj_ops' by
cplus_varobj_ops.
(asm_language_defn): Initialize field 'la_varobj_ops' by
default_varobj_ops.
(minimal_language_defn): Likewise.
* d-lang.c (d_language_defn): Likewise.
* f-lang.c (f_language_defn): Likewise.
* go-lang.c (go_language_defn): Likewise.
* m2-lang.c (m2_language_defn): Likewise.
* objc-lang.c (objc_language_defn): Likewise.
* opencl-lang.c (opencl_language_defn): Likewise.
* p-lang.c (pascal_language_defn): Likewise.
* language.c (unknown_language_defn): Likewise.
(auto_language_defn): Likewise.
(local_language_defn): Likewise.
* jv-lang.c (java_language_defn): Initialize field
'la_varobj_ops' by java_varobj_ops.
* varobj.c (varobj_create): Update.
* varobj.h (default_varobj_ops): Define macro.
Diffstat (limited to 'gdb/c-lang.c')
-rw-r--r-- | gdb/c-lang.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 33bb444..7c09029 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -23,6 +23,7 @@ #include "expression.h" #include "parser-defs.h" #include "language.h" +#include "varobj.h" #include "c-lang.h" #include "valprint.h" #include "macroscope.h" @@ -846,6 +847,7 @@ const struct language_defn c_language_defn = c_get_string, NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, + &c_varobj_ops, LANG_MAGIC }; @@ -969,6 +971,7 @@ const struct language_defn cplus_language_defn = c_get_string, NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, + &cplus_varobj_ops, LANG_MAGIC }; @@ -1010,6 +1013,7 @@ const struct language_defn asm_language_defn = c_get_string, NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, + &default_varobj_ops, LANG_MAGIC }; @@ -1056,6 +1060,7 @@ const struct language_defn minimal_language_defn = c_get_string, NULL, /* la_get_symbol_name_cmp */ iterate_over_symbols, + &default_varobj_ops, LANG_MAGIC }; |