[gdb] Mention CU offset for <artifical> if verbose
Say we're debugging a test-case with CUs with name "<artificial>", 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 <artificial>... \ 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 "<artificial>" 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 "<artificial>", 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 <artificial>@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-09 Tom de Vries <tdevries@suse.de> * dwarf2read.c (process_psymtab_comp_unit_reader): Append CU offset to filename if it matches "<artificial>".
This commit is contained in:
parent
46ce2b6f4c
commit
2e9276136b
2 changed files with 13 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2020-02-09 Tom de Vries <tdevries@suse.de>
|
||||
|
||||
* dwarf2read.c (process_psymtab_comp_unit_reader): Append CU offset to
|
||||
filename if it matches "<artificial>".
|
||||
|
||||
2020-02-09 Hannes Domani <ssbssa@yahoo.de>
|
||||
|
||||
* windows-tdep.c (struct enum_value_name): New struct.
|
||||
|
|
|
@ -7252,9 +7252,17 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader,
|
|||
prepare_one_comp_unit (cu, comp_unit_die, pretend_language);
|
||||
|
||||
/* Allocate a new partial symbol table structure. */
|
||||
gdb::unique_xmalloc_ptr<char> debug_filename;
|
||||
static const char artificial[] = "<artificial>";
|
||||
filename = dwarf2_string_attr (comp_unit_die, DW_AT_name, cu);
|
||||
if (filename == NULL)
|
||||
filename = "";
|
||||
else if (strcmp (filename, artificial) == 0)
|
||||
{
|
||||
debug_filename.reset (concat (artificial, "@",
|
||||
sect_offset_str (per_cu->sect_off), NULL));
|
||||
filename = debug_filename.get ();
|
||||
}
|
||||
|
||||
pst = create_partial_symtab (per_cu, filename);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue