[gdb] Print user for maint info psymtabs

The type struct partial_symtab contains two fields (disregarding field next)
that express relations with other symtabs: user and dependencies.

When using "maint print psymbols", we see both the dependencies and the user
fields:
...
Partial symtab for source file  (object 0x35ef270)
  ...
  Depends on 0 other partial symtabs.
  Shared partial symtab with user 0x35d5f40
...

But with "maint info psymtabs", we only see dependencies:
...
  { psymtab  ((struct partial_symtab *) 0x35ef270)
    ...
    dependencies (none)
  }
...

Add printing of the user field for "maint info psymtabs", such that we have:
...
   { psymtab  ((struct partial_symtab *) 0x35ef270)
     ...
+    user hello.c ((struct partial_symtab *) 0x35d5f40)
     dependencies (none)
   }
...

Tested on x86_64-linux.

gdb/ChangeLog:

2020-03-24  Tom de Vries  <tdevries@suse.de>

	* psymtab.c (maintenance_info_psymtabs): Print user field.
This commit is contained in:
Tom de Vries 2020-03-24 10:00:51 +01:00
parent 65109548f8
commit a64fafb545
2 changed files with 9 additions and 0 deletions

View File

@ -1,3 +1,7 @@
2020-03-24 Tom de Vries <tdevries@suse.de>
* psymtab.c (maintenance_info_psymtabs): Print user field.
2020-03-20 Tom Tromey <tromey@adacore.com>
* dwarf2/loc.h (dwarf2_evaluate_property): Make "addr_stack"

View File

@ -2065,6 +2065,11 @@ maintenance_info_psymtabs (const char *regexp, int from_tty)
}
else
printf_filtered ("(none)\n");
if (psymtab->user)
printf_filtered (" user %s "
"((struct partial_symtab *) %s)\n",
psymtab->user->filename,
host_address_to_string (psymtab->user));
printf_filtered (" dependencies ");
if (psymtab->number_of_dependencies)
{