readelf: Print .eh_frame even with no other DWARF.
authorRoland McGrath <roland@redhat.com>
Tue, 1 Jun 2010 20:44:00 +0000 (13:44 -0700)
committerRoland McGrath <roland@redhat.com>
Tue, 1 Jun 2010 20:44:00 +0000 (13:44 -0700)
src/ChangeLog
src/readelf.c

index 1b803b0..4a6389a 100644 (file)
@@ -1,3 +1,8 @@
+2010-06-01  Roland McGrath  <roland@redhat.com>
+
+       * readelf.c (print_debug): Don't bail if libdw setup fails.
+       Suppress complaint if we only want .eh_frame anyway.
+
 2010-05-28  Ulrich Drepper  <drepper@redhat.com>
 
        * readelf.c (attr_callback): Also print form information.
index dc368c2..0d8c431 100644 (file)
@@ -6503,12 +6503,15 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
   /* Before we start the real work get a debug context descriptor.  */
   Dwarf_Addr dwbias;
   Dwarf *dbg = dwfl_module_getdwarf (dwflmod, &dwbias);
+  Dwarf dummy_dbg = { .other_byte_order = MY_ELFDATA != ehdr->e_ident[EI_DATA] };
   if (dbg == NULL)
     {
-      if (print_debug_sections != 0)
+      if ((print_debug_sections & ~section_exception) != 0)
        error (0, 0, gettext ("cannot get debug context descriptor: %s"),
               dwfl_errmsg (-1));
-      return;
+      if ((print_debug_sections & section_exception) == 0)
+       return;
+      dbg = &dummy_dbg;
     }
 
   /* Get the section header string table index.  */