aboutsummaryrefslogtreecommitdiff
path: root/bfd/dwarf2.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2005-09-20 18:13:32 +0000
committerJim Wilson <wilson@tuliptree.org>2005-09-20 18:13:32 +0000
commitd5cbaa15541c43d4df31e60fb61e7bc9a8b766fa (patch)
tree7fc5a8f0a2d8c817e68a9d9f1e2a8b4ca659e396 /bfd/dwarf2.c
parent8aba57de199ea1917c43e8611eeb300b2bb2b676 (diff)
downloadbinutils-d5cbaa15541c43d4df31e60fb61e7bc9a8b766fa.zip
binutils-d5cbaa15541c43d4df31e60fb61e7bc9a8b766fa.tar.gz
binutils-d5cbaa15541c43d4df31e60fb61e7bc9a8b766fa.tar.bz2
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.
Diffstat (limited to 'bfd/dwarf2.c')
-rw-r--r--bfd/dwarf2.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 0a0fc12..ca792f4 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;
}