From: Jeff Law Date: Fri, 24 Mar 1995 06:21:44 +0000 (+0000) Subject: * somsolib.c (som_solib_add): Handle case where a shared library X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9bfed1ee346333e46c282daa787a24ebf2b8ee43;p=binutils-gdb.git * somsolib.c (som_solib_add): Handle case where a shared library referenced by a core file has sections without the SEC_ALLOC bit set (eg stabs sections). --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 652b3ea1719..008448e6215 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Thu Mar 23 23:20:00 1995 Jeff Law (law@snake.cs.utah.edu) + + * somsolib.c (som_solib_add): Handle case where a shared library + referenced by a core file has sections without the SEC_ALLOC bit + set (eg stabs sections). + Thu Mar 23 15:07:08 1995 Jim Kingdon (kingdon@lioth.cygnus.com) * breakpoint.c (bpstat_do_actions): For each element in the bpstat diff --git a/gdb/somsolib.c b/gdb/somsolib.c index 241283b5bca..ede2c41fef8 100644 --- a/gdb/somsolib.c +++ b/gdb/somsolib.c @@ -385,30 +385,27 @@ som_solib_add (arg_string, from_tty, target) status = target_read_memory (text_addr, buf, 4); if (status != 0) { - int old; + int old, new; + new = new_so->sections_end - new_so->sections; /* Add sections from the shared library to the core target. */ if (target->to_sections) { old = target->to_sections_end - target->to_sections; target->to_sections = (struct section_table *) xrealloc ((char *)target->to_sections, - ((sizeof (struct section_table)) - * (old + bfd_count_sections (new_so->abfd)))); + ((sizeof (struct section_table)) * (old + new))); } else { old = 0; target->to_sections = (struct section_table *) - xmalloc ((sizeof (struct section_table)) - * bfd_count_sections (new_so->abfd)); + xmalloc ((sizeof (struct section_table)) * new); } - target->to_sections_end = (target->to_sections - + old + bfd_count_sections (new_so->abfd)); + target->to_sections_end = (target->to_sections + old + new); memcpy ((char *)(target->to_sections + old), new_so->sections, - ((sizeof (struct section_table)) - * bfd_count_sections (new_so->abfd))); + ((sizeof (struct section_table)) * new)); } }