aboutsummaryrefslogtreecommitdiff
path: root/gdb/doc
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-12-29 08:01:32 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-12-29 08:01:32 +0000
commit720d1a4025df48e7f8fd6426e4f518c02ad3208a (patch)
tree8f72a5bc2284a330fba516511759384738a7cd94 /gdb/doc
parent113a6f1ec903a7b627723d2c913d75c3a37e421c (diff)
downloadgdb-720d1a4025df48e7f8fd6426e4f518c02ad3208a.zip
gdb-720d1a4025df48e7f8fd6426e4f518c02ad3208a.tar.gz
gdb-720d1a4025df48e7f8fd6426e4f518c02ad3208a.tar.bz2
[Ada] do not print arrays as array pointers
This patch enhances the debugger to distinguish between fat pointers that represent either: array types, or array access types. In the latter case, the object/type is encoded as a typedef type pointing to the fat pointer. The first part of the change is to adjust ada_check_typedef to avoid stripping the typedef layer when it points to a fat pointer. The rest of the patch is adjustments required in various places to deal with the fact that the type is uses might now be a typedef. gdb/ChangeLog: * ada-lang.h (ada_coerce_to_simple_array): Add declaration. * ada-lang.c (ada_typedef_target_type): New function. (desc_base_type): Add handling of fat pointer typedefs. (ada_coerce_to_simple_array): Make non-static. (decode_packed_array_bitsize): Add handling of fat pointer typedefs. Add assertion. (ada_template_to_fixed_record_type_1, ada_to_fixed_type) (ada_check_typedef): Add handling of fat pointer typedefs. (ada_evaluate_subexp) [OP_FUNCALL]: Likewise. * ada-typeprint.c (ada_print_type): Add handling of fat pointer typedefs. * ada-valprint.c (ada_val_print_1): Convert fat pointers that are not array accesses to simple arrays rather than simple array pointers. (ada_value_print): In the case of array descriptors, do not print the value type description unless it is an array access. gdb/testsuite/ChangeLog: * gdb.ada/lang_switch.exp: Correct expected parameter value. gdb/doc/ChangeLog: * gdb.texinfo (Ada Glitches): Remove paragraph describing the occasional case where the debugger prints an array address instead of the array itself.
Diffstat (limited to 'gdb/doc')
-rw-r--r--gdb/doc/ChangeLog6
-rw-r--r--gdb/doc/gdb.texinfo7
2 files changed, 6 insertions, 7 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 31e35d3..0d1ec08 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2010-12-29 Joel Brobecker <brobecker@adacore.com>
+
+ * gdb.texinfo (Ada Glitches): Remove paragraph describing the
+ occasional case where the debugger prints an array address
+ instead of the array itself.
+
2010-12-23 Pedro Alves <pedro@codesourcery.com>
* gdb.texinfo (Packets) <read registers packet>: Document support
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index b48dc70..191c60b 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -13665,13 +13665,6 @@ some of which will be fixed with planned future releases of the debugger
and the GNU Ada compiler.
@itemize @bullet
-@item
-Currently, the debugger
-has insufficient information to determine whether certain pointers represent
-pointers to objects or the objects themselves.
-Thus, the user may have to tack an extra @code{.all} after an expression
-to get it printed properly.
-
@item
Static constants that the compiler chooses not to materialize as objects in
storage are invisible to the debugger.