PR binutils/6483
authorNick Clifton <nickc@redhat.com>
Thu, 12 Jun 2008 11:57:40 +0000 (11:57 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 12 Jun 2008 11:57:40 +0000 (11:57 +0000)
        * objdump.c (dump_bfd): If the -g option found no STABS or IEEE
        debug information to display, try dumping DWARF information
        instead.
        * rddbg.c (read_debugging_info): Add a parameter to suppress the
        display of a warning message when no debug information is found.
        * budbg.h (read_debugging_info): Update prototype.
        * objcopy.c (copy_object): Continue to allow read_debugging_info
        to produce warning messages.
        * doc/binutils.texi (--debugging): Document new behaviour of the
        -g/--debugging option.

binutils/ChangeLog
binutils/budbg.h
binutils/doc/binutils.texi
binutils/objcopy.c
binutils/objdump.c
binutils/rddbg.c

index 84d7ea1b91fe66b95ed27b0bf991ed5971e0fdd5..4ba9c0a57aabaafc69c111b0d1d74298fa2e41d3 100644 (file)
@@ -1,3 +1,17 @@
+2008-06-12  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/6483
+       * objdump.c (dump_bfd): If the -g option found no STABS or IEEE
+       debug information to display, try dumping DWARF information
+       instead.
+       * rddbg.c (read_debugging_info): Add a parameter to suppress the
+       display of a warning message when no debug information is found.
+       * budbg.h (read_debugging_info): Update prototype.
+       * objcopy.c (copy_object): Continue to allow read_debugging_info
+       to produce warning messages.
+       * doc/binutils.texi (--debugging): Document new behaviour of the
+       -g/--debugging option.
+
 2008-06-10  Ben Elliston  <bje@gnu.org>
 
        * MAINTAINERS: Remove myself as m68k maintainer.
index a8c99dddf0841296012fb59d9c7ad3a7e3a3bc35..cad6ac75a3a08607490aea427dc1933adf919833 100644 (file)
@@ -1,5 +1,5 @@
 /* budbg.c -- Interfaces to the generic debugging information routines.
-   Copyright 1995, 1996, 2002, 2003, 2007 Free Software Foundation, Inc.
+   Copyright 1995, 1996, 2002, 2003, 2007, 2008 Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
    This file is part of GNU Binutils.
@@ -26,7 +26,7 @@
 
 /* Routine used to read generic debugging information.  */
 
-extern void *read_debugging_info (bfd *, asymbol **, long);
+extern void *read_debugging_info (bfd *, asymbol **, long, bfd_boolean);
 
 /* Routine used to print generic debugging information.  */
 
index d08c61739c21e5a5ddb6186a3ca4d94ecf136da0..2ebf3540217c4d339438473ddc10086e60de4659 100644 (file)
@@ -1693,11 +1693,11 @@ for more information on demangling.
 
 @item -g
 @itemx --debugging
-Display debugging information.  This attempts to parse debugging
-information stored in the file and print it out using a C like syntax.
-Only certain types of debugging information have been implemented.
-Some other types are supported by @command{readelf -w}.
-@xref{readelf}.
+Display debugging information.  This attempts to parse STABS and IEEE
+debugging format information stored in the file and print it out using
+a C like syntax.  If neither of these formats are found this option
+falls back on the @option{-W} option to print any DWARF information in
+the file.
 
 @item -e
 @itemx --debugging-tags
index d44114ad71e8cc1dacf8f7b2ebd3f218f66def4f..49b022a648c197ad45271327f13a92b5e87a3708 100644 (file)
@@ -1674,7 +1674,7 @@ copy_object (bfd *ibfd, bfd *obfd)
      have been created, but before their contents are set.  */
   dhandle = NULL;
   if (convert_debugging)
-    dhandle = read_debugging_info (ibfd, isympp, symcount);
+    dhandle = read_debugging_info (ibfd, isympp, symcount, FALSE);
 
   if (strip_symbols == STRIP_DEBUG
       || strip_symbols == STRIP_ALL
index 5a862506c8608fe4889b4a615fc907345def6df0..d171d14f4f5baad90bfcc3ff5306f7e8860522db 100644 (file)
@@ -2937,7 +2937,7 @@ dump_bfd (bfd *abfd)
     {
       void *dhandle;
 
-      dhandle = read_debugging_info (abfd, syms, symcount);
+      dhandle = read_debugging_info (abfd, syms, symcount, TRUE);
       if (dhandle != NULL)
        {
          if (!print_debugging_info (stdout, dhandle, abfd, syms,
@@ -2949,6 +2949,12 @@ dump_bfd (bfd *abfd)
              exit_status = 1;
            }
        }
+      /* PR 6483: If there was no STABS or IEEE debug
+        info in the file, try DWARF instead.  */
+      else if (! dump_dwarf_section_info)
+       {
+         dump_dwarf (abfd);
+       }
     }
 
   if (syms)
index 6d26fee47bfafc193211bb5d0a484b049ef2c150..e21ed6fa8d79f9e6598486f52d838bd07426b4d6 100644 (file)
@@ -1,5 +1,5 @@
 /* rddbg.c -- Read debugging information into a generic form.
-   Copyright 1995, 1996, 1997, 2000, 2002, 2003, 2005, 2007
+   Copyright 1995, 1996, 1997, 2000, 2002, 2003, 2005, 2007, 2008
    Free Software Foundation, Inc.
    Written by Ian Lance Taylor <ian@cygnus.com>.
 
@@ -45,7 +45,7 @@ static void free_saved_stabs (void);
    pointer.  */
 
 void *
-read_debugging_info (bfd *abfd, asymbol **syms, long symcount)
+read_debugging_info (bfd *abfd, asymbol **syms, long symcount, bfd_boolean no_messages)
 {
   void *dhandle;
   bfd_boolean found;
@@ -84,8 +84,9 @@ read_debugging_info (bfd *abfd, asymbol **syms, long symcount)
 
   if (! found)
     {
-      non_fatal (_("%s: no recognized debugging information"),
-                bfd_get_filename (abfd));
+      if (! no_messages)
+       non_fatal (_("%s: no recognized debugging information"),
+                  bfd_get_filename (abfd));
       return NULL;
     }