From: Jim Wilson Date: Tue, 20 Sep 2005 18:13:32 +0000 (+0000) Subject: Add mangled names to addr2line -i output. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d5cbaa15541c43d4df31e60fb61e7bc9a8b766fa;p=binutils-gdb.git Add mangled names to addr2line -i output. * dwarf2.c (find_abstract_instance_name): Don't early exit when name set. For DW_AT_name case, only set name if not already set. Handle DW_AT_MIPS_linkage_name. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index dcb55735202..ad1c2517d0f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2005-09-20 James E. Wilson + + * dwarf2.c (find_abstract_instance_name): Don't early exit when name + set. For DW_AT_name case, only set name if not already set. Handle + DW_AT_MIPS_linkage_name. + 2005-09-20 Alan Modra * elflink.c (_bfd_elf_merge_symbol): Simplify. diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 0a0fc12b1ca..ca792f4b464 100644 --- a/bfd/dwarf2.c +++ b/bfd/dwarf2.c @@ -1568,17 +1568,22 @@ find_abstract_instance_name (struct comp_unit *unit, bfd_uint64_t die_ref) } else { - for (i = 0; i < abbrev->num_attrs && !name; ++i) + for (i = 0; i < abbrev->num_attrs; ++i) { info_ptr = read_attribute (&attr, &abbrev->attrs[i], unit, info_ptr); switch (attr.name) { case DW_AT_name: - name = attr.u.str; + /* Prefer DW_AT_MIPS_linkage_name over DW_AT_name. */ + if (name == NULL) + name = attr.u.str; break; case DW_AT_specification: name = find_abstract_instance_name (unit, attr.u.val); break; + case DW_AT_MIPS_linkage_name: + name = attr.u.str; + break; default: break; }