Skip to content

Commit 8f258a6

Browse files
committed
[gdb/symtab] Dump qualified name of cooked_index_entry
When doing "maint print objfiles" for the exec of test-case gdb.dwarf2/pr13961.exp, we get: ... [25] ((cooked_index_entry *) 0x37b25d0) name: foo canonical: foo DWARF tag: DW_TAG_class_type flags: 0x0 [] DIE offset: 0x2a parent: ((cooked_index_entry *) 0) [26] ((cooked_index_entry *) 0x37b2630) name: foo canonical: foo DWARF tag: DW_TAG_class_type flags: 0x0 [] DIE offset: 0x25 parent: ((cooked_index_entry *) 0x37b25d0) [foo] ... By following the parent links in the text, we can conclude that the qualified name of DIE 0x25 is foo::foo (which is incorrect, that's PR symtab/30739). But it's not evident, and also hard to verify in a test-case. Add dumping of the qualified name, such that we have: ... [25] ((cooked_index_entry *) 0x333b5d0) name: foo canonical: foo qualified: foo DWARF tag: DW_TAG_class_type flags: 0x0 [] DIE offset: 0x2a parent: ((cooked_index_entry *) 0) [26] ((cooked_index_entry *) 0x333b630) name: foo canonical: foo qualified: foo::foo DWARF tag: DW_TAG_class_type flags: 0x0 [] DIE offset: 0x25 parent: ((cooked_index_entry *) 0x333b5d0) [foo] ... Tested on x86_64-linux. Approved-By: Tom Tromey <[email protected]>
1 parent 22f4640 commit 8f258a6

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

gdb/dwarf2/cooked-index.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,8 @@ cooked_index::get_main () const
565565
void
566566
cooked_index::dump (gdbarch *arch) const
567567
{
568+
auto_obstack temp_storage;
569+
568570
/* Ensure the index is done building. */
569571
this->wait ();
570572

@@ -579,6 +581,7 @@ cooked_index::dump (gdbarch *arch) const
579581
gdb_printf (" [%zu] ((cooked_index_entry *) %p)\n", i++, entry);
580582
gdb_printf (" name: %s\n", entry->name);
581583
gdb_printf (" canonical: %s\n", entry->canonical);
584+
gdb_printf (" qualified: %s\n", entry->full_name (&temp_storage, false));
582585
gdb_printf (" DWARF tag: %s\n", dwarf_tag_name (entry->tag));
583586
gdb_printf (" flags: %s\n", to_string (entry->flags).c_str ());
584587
gdb_printf (" DIE offset: 0x%" PRIx64 "\n",

0 commit comments

Comments
 (0)