diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5f40634e265..c751df7d9a5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index d1622dc74fa..9e66e613cd6 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -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);