]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
Merge over readelf dwarf string additions from dwarf branch dwarfstrings.
authorMark Wielaard <mjw@redhat.com>
Fri, 25 Feb 2011 11:58:54 +0000 (12:58 +0100)
committerMark Wielaard <mjw@redhat.com>
Fri, 25 Feb 2011 11:58:54 +0000 (12:58 +0100)
* readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
(dwarf_form_string): Properly format and return unknown form.

src/ChangeLog
src/readelf.c

index a7c2513d9477a2f6ebe3f4ca8d164ae7639bccc2..5ef2aec28cbdebd41f7e9dd49c560fd9615830c7 100644 (file)
@@ -1,3 +1,8 @@
+2011-02-25  Mark Wielaard  <mjw@redhat.com>
+
+       * readelf.c (dwarf_attr_string): Add DW_AT_GNU_* handling.
+       (dwarf_form_string): Properly format and return unknown form.
+
 2011-02-23  Roland McGrath  <roland@redhat.com>
 
        * readelf.c (section_name): New function.
index 78ee2b77830feeb9088b580b169e1eb6fd55c430..b798b5ac832fcb1f8bb5c785f46cb482ded1a8b6 100644 (file)
@@ -3514,6 +3514,34 @@ dwarf_attr_string (unsigned int attrnum)
        result = "GNU_vector";
        break;
 
+      case DW_AT_GNU_guarded_by:
+       result = "GNU_guarded_by";
+       break;
+
+      case DW_AT_GNU_pt_guarded_by:
+       result = "GNU_pt_guarded_by";
+       break;
+
+      case DW_AT_GNU_guarded:
+       result = "GNU_guarded";
+       break;
+
+      case DW_AT_GNU_pt_guarded:
+       result = "GNU_pt_guarded";
+       break;
+
+      case DW_AT_GNU_locks_excluded:
+       result = "GNU_locks_excluded";
+       break;
+
+      case DW_AT_GNU_exclusive_locks_required:
+       result = "GNU_exclusive_locks_required";
+       break;
+
+      case DW_AT_GNU_shared_locks_required:
+       result = "GNU_shared_locks_required";
+       break;
+
       case DW_AT_GNU_odr_signature:
        result = "GNU_odr_signature";
        break;
@@ -3566,7 +3594,7 @@ dwarf_form_string (unsigned int form)
       [DW_FORM_sec_offset] = "sec_offset",
       [DW_FORM_exprloc] = "exprloc",
       [DW_FORM_flag_present] = "flag_present",
-      [DW_FORM_ref_sig8] = "ref_sig8"
+      [DW_FORM_ref_sig8] = "ref_sig8",
     };
   const unsigned int nknown_forms = (sizeof (known_forms)
                                     / sizeof (known_forms[0]));
@@ -3577,8 +3605,11 @@ dwarf_form_string (unsigned int form)
     result = known_forms[form];
 
   if (unlikely (result == NULL))
-    snprintf (buf, sizeof buf, gettext ("unknown form %" PRIx64),
-             (uint64_t) form);
+    {
+      snprintf (buf, sizeof buf, gettext ("unknown form %#" PRIx64),
+               (uint64_t) form);
+      result = buf;
+    }
 
   return result;
 }