aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/somsolib.c18
2 files changed, 24 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 350f711..0383189 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 2744e5c..595752c 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);