[PATCH 1/2] gdb: include allocated/associated properties in 'maint print type'

Andrew Burgess
2020-12-23T23:54:09Z

Adds the allocated and associated dynamic properties into the output
of the 'maintenance print type' command.

gdb/ChangeLog:

* gdbtypes (recursive_dump_type): Include allocated and associated
properties.
---
gdb/ChangeLog | 5 +++++
gdb/gdbtypes.c | 18 ++++++++++++++++++
2 files changed, 23 insertions(+)

diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 569e7a3e659..8e90c4b108b 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -5269,6 +5269,24 @@ recursive_dump_type (struct type *type, int spaces)
}
puts_filtered ("\n");
printf_filtered ("%*snfields %d ", spaces, "", type->num_fields ());
+ if (TYPE_ASSOCIATED_PROP (type) != nullptr
+ || TYPE_ALLOCATED_PROP (type) != nullptr)
+ {
+ printf_filtered ("%*s", spaces, "");
+ if (TYPE_ASSOCIATED_PROP (type) != nullptr)
+ {
+ printf_filtered ("associated ");
+ dump_dynamic_prop (*TYPE_ASSOCIATED_PROP (type));
+ }
+ if (TYPE_ALLOCATED_PROP (type) != nullptr)
+ {
+ if (TYPE_ASSOCIATED_PROP (type))
+ printf_filtered (" ");
+ printf_filtered ("allocated ");
+ dump_dynamic_prop (*TYPE_ALLOCATED_PROP (type));
+ }
+ printf_filtered ("\n");
+ }
gdb_print_host_address (type->fields (), gdb_stdout);
puts_filtered ("\n");
for (idx = 0; idx < type->num_fields (); idx++)
--
2.25.4