* xcoffexec.c (add_vmap): Wrap symbol read in catch_errors.
authorJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 04:07:29 +0000 (04:07 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Wed, 17 Mar 1993 04:07:29 +0000 (04:07 +0000)
gdb/ChangeLog
gdb/xcoffexec.c

index 6471567f3430c4ea28006b35119bc8fdbede9108..bb0e931996f04a95a1e3aebb0e7dbfa3926d1eb3 100644 (file)
@@ -1,3 +1,15 @@
+Tue Mar 16 15:18:17 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+       * xcoffexec.c (add_vmap): Wrap symbol read in catch_errors.
+
+       * xcoffread.c (read_symbol_lineno): Look to end of symbols for .bf,
+       not just 50 symbols.
+       (symtbl_num_syms): New variable.
+       (read_xcoff_symtab): Set it.
+       (read_symbol_nvalue): Check for bad symno.
+       (read_symbol_{lineno,nvalue}, callers): Don't pass symtable; it's
+       always symtbl.
+
 Tue Mar 16 10:09:05 1993  Stu Grossman  (grossman@cygnus.com)
 
        * config/rs6000.mh:  Get rid of -Dfd_set=int crock.
index 96bd97f0f3c3d6459396a4583ae664aa77235996..db658e0308edb1d7569264c77b90c87c54c37004 100644 (file)
@@ -465,6 +465,17 @@ CORE_ADDR old_start;
     }
 }
 
+/* Add symbols for an objfile.  */
+static int
+objfile_symbol_add (arg)
+     char *arg;
+{
+  struct objfile *obj = (struct objfile *) arg;
+  syms_from_objfile (obj, 0, 0, 0);
+  new_symfile_objfile (obj, 0, 0);
+  return 1;
+}
+
 static struct vmap *add_vmap PARAMS ((struct ld_info *));
 
 /* Add a new vmap entry based on ldinfo() information.
@@ -540,10 +551,13 @@ add_vmap(ldi)
        vp->objfile = obj;
 
 #ifndef SOLIB_SYMBOLS_MANUAL
-       syms_from_objfile (obj, 0, 0, 0);
-       new_symfile_objfile (obj, 0, 0);
-       vmap_symtab (vp, 0, 0);
-       vp->loaded = 1;
+       if (catch_errors (objfile_symbol_add, (char *)obj,
+                         "Error while reading shared library symbols:\n"))
+         {
+           /* Note this is only done if symbol reading was successful.  */
+           vmap_symtab (vp, 0, 0);
+           vp->loaded = 1;
+         }
 #endif
        return vp;
 }