From 95037710caf0f84b0adc1d366c8b92eda8aeb255 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 13 Oct 1995 17:05:53 +0000 Subject: [PATCH] * somsolib.c (som_solib_add): Just give a warning if a file mentioned in the dld_list can't be found. Warning seems more reasonable than croaking. * config/pa/tm-hppah.h (FRAME_SAVED_PC_IN_SIGTRAMP): Dig out the PC from the PC queues rather than %r31. Fixes net bug. Might also fix one of the hpux10 corefile.exp failures, not sure (will test when I get back monday morning). --- gdb/ChangeLog | 7 +++++++ gdb/somsolib.c | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 350f7119e8b..0383189bce7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +Fri Oct 13 10:57:40 1995 Jeffrey A Law (law@cygnus.com) + + * somsolib.c (som_solib_add): Just give a warning if a file + mentioned in the dld_list can't be found. + * config/pa/tm-hppah.h (FRAME_SAVED_PC_IN_SIGTRAMP): Dig out + the PC from the PC queues rather than %r31. + Thu Oct 12 13:36:15 1995 Jeffrey A Law (law@cygnus.com) * corelow.c (core_open): Don't update the to_sections and diff --git a/gdb/somsolib.c b/gdb/somsolib.c index 2744e5c9a04..595752c203e 100644 --- a/gdb/somsolib.c +++ b/gdb/somsolib.c @@ -234,6 +234,7 @@ som_solib_add (arg_string, from_tty, target) struct so_list *new_so; struct so_list *so_list = so_list_head; struct section_table *p; + struct stat statbuf; if (addr == 0) break; @@ -268,7 +269,22 @@ som_solib_add (arg_string, from_tty, target) so_list = so_list->next; } - /* We've already loaded this one or it's the main program, skip it. */ + /* See if the file exists. If not, give a warning, but don't + die. */ + status = stat (name, &statbuf); + if (status == -1) + { + warning ("Can't find file %s referenced in dld_list.", name); + + status = target_read_memory (addr + 36, buf, 4); + if (status != 0) + goto err; + + addr = (CORE_ADDR) extract_unsigned_integer (buf, 4); + continue; + } + + /* If we've already loaded this one or it's the main program, skip it. */ if (so_list || !strcmp (name, symfile_objfile->name)) { status = target_read_memory (addr + 36, buf, 4); -- 2.30.2