[gdb] Mention CU offset for if verbose Say we're debugging a test-case with CUs with name "", meaning not originating from a single file compilation, and use the verbose setting: ... $ gdb -iex "set verbose on" -batch cc1 Reading symbols from cc1... Reading in symbols for ... \ and /tmp/trunk/gcc/attribs.c... \ ... and /tmp/trunk/gcc/tree-ssa-reassoc.c... \ done. ... From the "/tmp/trunk/gcc/attribs.c" message, it's clear which CU is loaded. But that's not the case for the "" message. The message uses the filename field of struct partial_symtab, which is documented like this: ... /* Name of the source file which this partial_symtab defines, or if the psymtab is anonymous then a descriptive name for debugging purposes, or "". It must not be NULL. */ ... So, fix this by setting the filename field to a more descriptive name than "", by appending the CU offset. This way, we print instead: ... $ gdb -iex "set verbose on" -batch cc1 Reading symbols from cc1... Reading in symbols for @0x41146d9 \ and /tmp/trunk/gcc/attribs.c... \ ... \ and /tmp/trunk/gcc/tree-ssa-reassoc.c... \ done. ... Build and reg-tested on x86_64-linux. gdb/ChangeLog: 2020-02-07 Tom de Vries * dwarf2read.c (create_partial_symtab): Append CU offset to filename if it matches "". --- gdb/dwarf2read.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index dafe01d94a..5acae3eab8 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -8020,6 +8020,10 @@ create_partial_symtab (struct dwarf2_per_cu_data *per_cu, const char *name) struct objfile *objfile = per_cu->dwarf2_per_objfile->objfile; dwarf2_psymtab *pst; + static const char artificial[] = ""; + if (strcmp (name, artificial) == 0) + name = concat (artificial, "@", sect_offset_str (per_cu->sect_off), NULL); + pst = new dwarf2_psymtab (name, objfile, 0); pst->psymtabs_addrmap_supported = true;