]> sourceware.org Git - systemtap.git/commitdiff
Use DW_AT_MIPS_linkage_name when available in vardie_from_symtable.
authorMark Wielaard <mjw@redhat.com>
Tue, 17 Nov 2009 15:11:28 +0000 (16:11 +0100)
committerMark Wielaard <mjw@redhat.com>
Tue, 17 Nov 2009 15:11:28 +0000 (16:11 +0100)
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

index 53f3d8ebbdcba6a0408555998da1999fd4a2041f..fdbcddf433f86f9284667f40a2c5d43ed3ab63b5 100644 (file)
@@ -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";
 
This page took 0.033178 seconds and 5 git commands to generate.