aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2020-03-24 10:00:51 +0100
committerTom de Vries <tdevries@suse.de>2020-03-24 10:00:51 +0100
commita64fafb54577a87919a600474a3e4abe3510341a (patch)
treeb6dbe5f629229af4c8f73d4373ae83bca5cf9efc
parent65109548f8fb13ac4a6c3311ea46a8b69c548576 (diff)
downloadbinutils-a64fafb54577a87919a600474a3e4abe3510341a.zip
binutils-a64fafb54577a87919a600474a3e4abe3510341a.tar.gz
binutils-a64fafb54577a87919a600474a3e4abe3510341a.tar.bz2
[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.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/psymtab.c5
2 files changed, 9 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 186660b..1acd1fd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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"
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index f77f6d5..8aa9c6e 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -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)
{