do not try to dump empty sections
authorNick Clifton <nickc@redhat.com>
Sun, 6 Sep 1998 23:17:06 +0000 (23:17 +0000)
committerNick Clifton <nickc@redhat.com>
Sun, 6 Sep 1998 23:17:06 +0000 (23:17 +0000)
binutils/ChangeLog
binutils/readelf.c

index 4eea91e..fa229f6 100644 (file)
@@ -1,3 +1,8 @@
+Sun Sep  6 16:15:47 1998  Nick Clifton  <nickc@cygnus.com>
+
+       * readelf.c (process_section_contents): Do not try to dump empty
+       sections. 
+
 Sat Sep  5 19:17:10 1998  Mumit Khan  <khan@xraylith.wisc.edu>
 
        * dlltool.c (scan_all_symbols): Don't re-export symbols exported
index 698cdb4..1a80e5c 100644 (file)
@@ -1023,6 +1023,7 @@ struct option options [] =
   {"sections", no_argument, 0, 'S'},
   {"section-headers", no_argument, 0, 'S'},
   {"symbols", no_argument, 0, 's'},
+  {"syms", no_argument, 0, 's'},
   {"relocs", no_argument, 0, 'r'},
   {"dynamic", no_argument, 0, 'd'},
   {"version-info", no_argument, 0, 'V'},
@@ -1051,7 +1052,7 @@ usage ()
   fprintf (stdout, _("  -S or --section-headers or --sections\n"));
   fprintf (stdout, _("                            Display the sections' header\n"));
   fprintf (stdout, _("  -e or --headers           Equivalent to: -h -l -S\n"));
-  fprintf (stdout, _("  -s or --symbols           Display the symbol table\n"));
+  fprintf (stdout, _("  -s or --syms or --symbols Display the symbol table\n"));
   fprintf (stdout, _("  -r or --relocs            Display the relocations (if present)\n"));
   fprintf (stdout, _("  -d or --dynamic           Display the dynamic segment (if present)\n"));
   fprintf (stdout, _("  -V or --version-info      Display the version sections (if present)\n"));
@@ -3200,9 +3201,16 @@ process_section_contents (file)
          unsigned char * data;
          char *          start;
 
-         printf (_("\nHex dump of section '%s':\n"), SECTION_NAME (section));
-
          bytes = section->sh_size;
+
+         if (bytes == 0)
+           {
+             printf (_("\nSection %d has no data to dump.\n"), i);
+             continue;
+           }
+         else
+           printf (_("\nHex dump of section '%s':\n"), SECTION_NAME (section));
+
          addr  = section->sh_addr;
 
          GET_DATA_ALLOC (section->sh_offset, bytes, start, char *,