diff options
author | Kevin Buettner <kevinb@redhat.com> | 2001-09-14 00:40:29 +0000 |
---|---|---|
committer | Kevin Buettner <kevinb@redhat.com> | 2001-09-14 00:40:29 +0000 |
commit | 8c5c927165493f25e4d90f8fe26837e55df72ecb (patch) | |
tree | c99c42bbb16a94f80a65a6ce9602a427377ad805 | |
parent | 69584168d59e9fe4a56d7ae52b180c6a94f9e6c8 (diff) | |
download | gdb-8c5c927165493f25e4d90f8fe26837e55df72ecb.tar.gz |
Commit Ilya Golubev's clear_solib() fixes.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/irix5-nat.c | 1 | ||||
-rw-r--r-- | gdb/osfsolib.c | 1 | ||||
-rw-r--r-- | gdb/solib.c | 2 |
4 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 71200c2eb75..a835ab8b239 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 c1549fc0623..3c3284047cc 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 b5a61518bc1..734cbc23ab5 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 dfcca0cc47b..c43858e8b55 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); } |