From b0490786a904cbd19fb04c3d66ac3c277bfc2c71 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 17 Nov 2009 16:11:28 +0100 Subject: Use DW_AT_MIPS_linkage_name when available in vardie_from_symtable. If there is a DW_AT_MIPS_linkage_name it encodes the actual name of the variable as used in the symbol table. * dwflpp.cpp (vardie_from_symtable): Check whether there is a DW_AT_MIPS_linkage_name attribute and use its value if so. --- dwflpp.cxx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dwflpp.cxx b/dwflpp.cxx index 53f3d8eb..fdbcddf4 100644 --- a/dwflpp.cxx +++ b/dwflpp.cxx @@ -2215,7 +2215,14 @@ dwflpp::express_as_string (string prelude, Dwarf_Addr dwflpp::vardie_from_symtable (Dwarf_Die *vardie, Dwarf_Addr *addr) { - const char *name = dwarf_diename (vardie); + const char *name; + Dwarf_Attribute attr_mem; + name = dwarf_formstring (dwarf_attr_integrate (vardie, + DW_AT_MIPS_linkage_name, + &attr_mem)); + if (!name) + name = dwarf_diename (vardie); + if (sess.verbose > 2) clog << "finding symtable address for " << name << "\n"; -- cgit