diff options
author | Fernando Nasser <fnasser@redhat.com> | 2001-05-10 16:44:56 +0000 |
---|---|---|
committer | Fernando Nasser <fnasser@redhat.com> | 2001-05-10 16:44:56 +0000 |
commit | 60da8cd4d77ecea5f9341ec1d9261ef2e3669e13 (patch) | |
tree | 058d865a449571326c64cfb50beaa43c7a256c2d | |
parent | ccac2036ae7203e51b9e31beff7676b083b9e254 (diff) | |
download | gdb-60da8cd4d77ecea5f9341ec1d9261ef2e3669e13.tar.gz |
2001-05-10 Fernando Nasser <fnasser@redhat.com>
* varobj.c (c_number_of_children): Check for target type of void*,
not the target type name. Allow dereferencing char*.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/varobj.c | 17 |
2 files changed, 14 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f7ae18b4337..52287b459c4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2001-05-10 Fernando Nasser <fnasser@redhat.com> + * varobj.c (c_number_of_children): Check for target type of void*, + not the target type name. Allow dereferencing char*. + +2001-05-10 Fernando Nasser <fnasser@redhat.com> + * symfile.c (symbol_file_add_main_1): New static function. Passes the flags arguments to symbol_file_add() and takes care of any necessary reinitializations. diff --git a/gdb/varobj.c b/gdb/varobj.c index 40bc209de3e..c61c313f088 100644 --- a/gdb/varobj.c +++ b/gdb/varobj.c @@ -1761,7 +1761,13 @@ c_number_of_children (struct varobj *var) case TYPE_CODE_PTR: /* This is where things get compilcated. All pointers have one child. Except, of course, for struct and union ptr, which we automagically - dereference for the user and function ptrs, which have no children. */ + dereference for the user and function ptrs, which have no children. + We also don't dereference void* as we don't know what to show. + We can show char* so we allow it to be dereferenced. If you decide + to test for it, please mind that a little magic is necessary to + properly identify it: char* has TYPE_CODE == TYPE_CODE_INT and + TYPE_NAME == "char" */ + switch (TYPE_CODE (target)) { case TYPE_CODE_STRUCT: @@ -1770,17 +1776,12 @@ c_number_of_children (struct varobj *var) break; case TYPE_CODE_FUNC: + case TYPE_CODE_VOID: children = 0; break; default: - /* Don't dereference char* or void*. */ - if (TYPE_NAME (target) != NULL - && (STREQ (TYPE_NAME (target), "char") - || STREQ (TYPE_NAME (target), "void"))) - children = 0; - else - children = 1; + children = 1; } break; |