diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1998-04-22 20:17:44 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1998-04-22 20:17:44 +0000 |
commit | b420cea7eb00a0cce5a1383ef9d743c281bd3d7a (patch) | |
tree | 3d2c5b20fe5c35529cc268a2f3d420871bf73f79 /gdb/irix5-nat.c | |
parent | f3b96ecc601e313d87507a164d939e34845a6dd5 (diff) | |
download | gdb-b420cea7eb00a0cce5a1383ef9d743c281bd3d7a.zip gdb-b420cea7eb00a0cce5a1383ef9d743c281bd3d7a.tar.gz gdb-b420cea7eb00a0cce5a1383ef9d743c281bd3d7a.tar.bz2 |
Handle missing shared libraries during the examination of a core
dump gracefully.
* solib.c (find_solib): Use catch_errors around call to
solib_map_sections. Use warning instead of error if reading of
the shared library name fails.
(solib_map_sections): Change return and argument types to make
it callable from catch_errors.
(symbol_add_stub): Avoid GDB core dump if solib->abfd is NULL.
* irix5-nat.c, osfsolib.c (xfer_link_map_member, solib_map_sections,
symbol_add_stub): Ditto.
Diffstat (limited to 'gdb/irix5-nat.c')
-rw-r--r-- | gdb/irix5-nat.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gdb/irix5-nat.c b/gdb/irix5-nat.c index 4ba686a..6ea5dea 100644 --- a/gdb/irix5-nat.c +++ b/gdb/irix5-nat.c @@ -1,5 +1,5 @@ /* Native support for the SGI Iris running IRIX version 5, for GDB. - Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 + Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998 Free Software Foundation, Inc. Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin. @@ -352,8 +352,8 @@ xfer_link_map_member PARAMS ((struct so_list *, struct link_map *)); static CORE_ADDR locate_base PARAMS ((void)); -static void -solib_map_sections PARAMS ((struct so_list *)); +static int +solib_map_sections PARAMS ((char *)); /* @@ -363,7 +363,7 @@ LOCAL FUNCTION SYNOPSIS - static void solib_map_sections (struct so_list *so) + static int solib_map_sections (struct so_list *so) DESCRIPTION @@ -382,10 +382,11 @@ FIXMES expansion stuff?). */ -static void -solib_map_sections (so) - struct so_list *so; +static int +solib_map_sections (arg) + char *arg; { + struct so_list *so = (struct so_list *) arg; /* catch_errors bogon */ char *filename; char *scratch_pathname; int scratch_chan; @@ -447,6 +448,8 @@ solib_map_sections (so) /* Free the file names, close the file now. */ do_cleanups (old_chain); + + return (1); } /* @@ -731,7 +734,9 @@ xfer_link_map_member (so_list_ptr, lm) #endif } - solib_map_sections (so_list_ptr); + catch_errors (solib_map_sections, (char *) so_list_ptr, + "Error while mapping shared library sections:\n", + RETURN_MASK_ALL); } @@ -810,7 +815,7 @@ symbol_add_stub (arg) if (so -> textsection) text_addr = so -> textsection -> addr; - else + else if (so -> abfd != NULL) { asection *lowest_sect; |