* xcoffread.c (xcoff_symfile_read): Only read stringtab and
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 19:06:32 +0000 (19:06 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 19:06:32 +0000 (19:06 +0000)
debugsec if there are a non-zero number of symbols.

gdb/ChangeLog
gdb/xcoffread.c

index bb0e931996f04a95a1e3aebb0e7dbfa3926d1eb3..4da4f8bfb32b170f6253c23dbe5b1c1cf8b8d085 100644 (file)
@@ -1,3 +1,8 @@
+Wed Mar 17 09:46:31 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+       * xcoffread.c (xcoff_symfile_read): Only read stringtab and
+       debugsec if there are a non-zero number of symbols.
+
 Tue Mar 16 15:18:17 1993  Jim Kingdon  (kingdon@cygnus.com)
 
        * xcoffexec.c (add_vmap): Wrap symbol read in catch_errors.
index a50b67a8122331c64f13f4d80474256439c9f880..84be25fb19681c1336858521808b0a93f0f2dbef 100644 (file)
@@ -2257,14 +2257,17 @@ xcoff_symfile_read (objfile, section_offset, mainline)
       error("\"%s\": error reading line numbers\n", name);
   }
 
-  val = init_stringtab(abfd, stringtab_offset, objfile);
-  if (val < 0) {
-    error ("\"%s\": can't get string table", name);
-  }
+  if (num_symbols > 0)
+    {
+      val = init_stringtab(abfd, stringtab_offset, objfile);
+      if (val < 0) {
+       error ("\"%s\": can't get string table", name);
+      }
 
-  if (init_debugsection(abfd) < 0) {
-    error ("Error reading .debug section of `%s'\n", name);
-  }
+      if (init_debugsection(abfd) < 0) {
+       error ("Error reading .debug section of `%s'\n", name);
+      }
+    }
 
   /* Position to read the symbol table.  Do not read it all at once. */
   val = bfd_seek(abfd, symtab_offset, L_SET);