diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/bsd-uthread.c | 25 |
2 files changed, 24 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 91bc692..b201340 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2008-08-18 Pedro Alves <pedro@codesourcery.com> + * bsd-uthread.c (bsd_uthread_close): New. + (bsd_uthread_deactivate): Don't cleanup here, just unpush the + target. + (bsd_uthread_solib_loaded): Fix typo. + (bsd_uthread_target): Register bsd_uthread_close. + +2008-08-18 Pedro Alves <pedro@codesourcery.com> + * corelow.c (core_open): Assume there was no upper layer left behind from a previous inferior. * target.c (pop_all_targets): Rename to ... diff --git a/gdb/bsd-uthread.c b/gdb/bsd-uthread.c index a15c78f..df038e6 100644 --- a/gdb/bsd-uthread.c +++ b/gdb/bsd-uthread.c @@ -192,18 +192,12 @@ bsd_uthread_activate (struct objfile *objfile) return 1; } -/* Deactivate the thread stratum implemented by this module. */ +/* Cleanup due to deactivation. */ static void -bsd_uthread_deactivate (void) +bsd_uthread_close (int quitting) { - /* Skip if the thread stratum has already been deactivated. */ - if (!bsd_uthread_active) - return; - bsd_uthread_active = 0; - unpush_target (bsd_uthread_ops_hack); - bsd_uthread_thread_run_addr = 0; bsd_uthread_thread_list_addr = 0; bsd_uthread_thread_state_offset = 0; @@ -212,6 +206,18 @@ bsd_uthread_deactivate (void) bsd_uthread_solib_name = NULL; } +/* Deactivate the thread stratum implemented by this module. */ + +static void +bsd_uthread_deactivate (void) +{ + /* Skip if the thread stratum has already been deactivated. */ + if (!bsd_uthread_active) + return; + + unpush_target (bsd_uthread_ops_hack); +} + void bsd_uthread_inferior_created (struct target_ops *ops, int from_tty) { @@ -239,7 +245,7 @@ bsd_uthread_solib_loaded (struct so_list *so) if (bsd_uthread_activate (so->objfile)) { - bsd_uthread_solib_name == so->so_original_name; + bsd_uthread_solib_name = so->so_original_name; return; } } @@ -490,6 +496,7 @@ bsd_uthread_target (void) t->to_shortname = "bsd-uthreads"; t->to_longname = "BSD user-level threads"; t->to_doc = "BSD user-level threads"; + t->to_close = bsd_uthread_close; t->to_mourn_inferior = bsd_uthread_mourn_inferior; t->to_fetch_registers = bsd_uthread_fetch_registers; t->to_store_registers = bsd_uthread_store_registers; |