gdb: include allocated/associated properties in 'maint print type'
authorAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 18 Dec 2020 18:15:06 +0000 (18:15 +0000)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 24 Dec 2020 16:45:39 +0000 (16:45 +0000)
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
gdb/gdbtypes.c

index ac4caf0532512b394b65826b8baadf83e4b7f7a7..d4352a86a1a7d4034c0c619e003a80648308001e 100644 (file)
@@ -1,3 +1,8 @@
+2020-12-24  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * gdbtypes (recursive_dump_type): Include allocated and associated
+       properties.
+
 2020-12-24  Lancelot SIX  <lsix@lancelotsix.com>
 
        * gdbtypes.c (is_scalar_type_recursive): Prevent comparison
index a6589c4914f7f17cf2e592c80ae3c146edf2fb91..35e993bd187d15dc8bbed6f8cf354802157a72d5 100644 (file)
@@ -5271,6 +5271,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) != nullptr)
+           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++)