aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2001-09-14 00:40:29 +0000
committerKevin Buettner <kevinb@redhat.com>2001-09-14 00:40:29 +0000
commit2069d78d3c80b9fa6ceef866853ce966186ee300 (patch)
tree8ff4cf31465ed077c287dc941f841aa76f7f4c70 /gdb
parent93de26c18808f0806c956139c1b79c26f46a2368 (diff)
downloadfsf-binutils-gdb-2069d78d3c80b9fa6ceef866853ce966186ee300.zip
fsf-binutils-gdb-2069d78d3c80b9fa6ceef866853ce966186ee300.tar.gz
fsf-binutils-gdb-2069d78d3c80b9fa6ceef866853ce966186ee300.tar.bz2
Commit Ilya Golubev's clear_solib() fixes.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/irix5-nat.c1
-rw-r--r--gdb/osfsolib.c1
-rw-r--r--gdb/solib.c2
4 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 71200c2..a835ab8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2001-09-13 Kevin Buettner <kevinb@redhat.com>
+
+ From Ilya Golubev <gin@mo.msk.ru>:
+ * solib.c (clear_solib): Call `remove_target_sections' to fix
+ stale pointers in `struct target_ops'.
+ * irix5-nat.c (clear_solib): Likewise.
+ * osfsolib.c (clear_solib): Likewise.
+
2001-09-13 Jim Blandy <jimb@redhat.com>
* monitor.c (monitor_load): Don't delete symtab users, or reset
diff --git a/gdb/irix5-nat.c b/gdb/irix5-nat.c
index c1549fc..3c32840 100644
--- a/gdb/irix5-nat.c
+++ b/gdb/irix5-nat.c
@@ -1061,6 +1061,7 @@ clear_solib (void)
}
if (so_list_head->abfd)
{
+ remove_target_sections (so_list_head->abfd);
bfd_filename = bfd_get_filename (so_list_head->abfd);
if (!bfd_close (so_list_head->abfd))
warning ("cannot close \"%s\": %s",
diff --git a/gdb/osfsolib.c b/gdb/osfsolib.c
index b5a6151..734cbc2 100644
--- a/gdb/osfsolib.c
+++ b/gdb/osfsolib.c
@@ -802,6 +802,7 @@ clear_solib (void)
}
if (so_list_head->abfd)
{
+ remove_target_sections (so_list_head->abfd);
bfd_filename = bfd_get_filename (so_list_head->abfd);
if (!bfd_close (so_list_head->abfd))
warning ("cannot close \"%s\": %s",
diff --git a/gdb/solib.c b/gdb/solib.c
index dfcca0c..c43858e 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -730,6 +730,8 @@ clear_solib (void)
{
struct so_list *so = so_list_head;
so_list_head = so->next;
+ if (so->abfd)
+ remove_target_sections (so->abfd);
free_so (so);
}