From e33e6409504273f77f9322237669aeebe9af4b32 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Tue, 16 Dec 2008 22:48:30 +0000 Subject: Merge from head: 2008-12-12 Pedro Alves * remote.c (remote_detach_1): Don't delete the inferior here. (process_stop_reply): Ditto. (extended_remote_kill): Ditto. --- gdb/ChangeLog.mp | 9 +++++++++ gdb/remote.c | 41 ++++++++++++++++++----------------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/gdb/ChangeLog.mp b/gdb/ChangeLog.mp index 649895a828a..67033d30255 100644 --- a/gdb/ChangeLog.mp +++ b/gdb/ChangeLog.mp @@ -1,3 +1,12 @@ +2008-12-16 Pedro Alves + + Merge from head: + 2008-12-12 Pedro Alves + + * remote.c (remote_detach_1): Don't delete the inferior here. + (process_stop_reply): Ditto. + (extended_remote_kill): Ditto. + 2008-12-16 Pedro Alves Merge from head: diff --git a/gdb/remote.c b/gdb/remote.c index 0d1d79f06d3..ad4e3fb69b2 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -3377,7 +3377,6 @@ remote_detach_1 (char *args, int from_tty, int extended) } discard_pending_stop_replies (pid); - detach_inferior (pid); target_mourn_inferior (); } @@ -4629,32 +4628,29 @@ process_stop_reply (struct stop_reply *stop_reply, if (ptid_equal (ptid, null_ptid)) ptid = inferior_ptid; - if (status->kind == TARGET_WAITKIND_EXITED - || status->kind == TARGET_WAITKIND_SIGNALLED) + if (status->kind != TARGET_WAITKIND_EXITED + && status->kind != TARGET_WAITKIND_SIGNALLED) { - int pid = ptid_get_pid (ptid); - delete_inferior (pid); - } - else - notice_new_inferiors (ptid, 0); + /* Expedited registers. */ + if (stop_reply->regcache) + { + cached_reg_t *reg; + int ix; + + for (ix = 0; + VEC_iterate(cached_reg_t, stop_reply->regcache, ix, reg); + ix++) + regcache_raw_supply (get_thread_regcache (ptid), + reg->num, reg->data); + VEC_free (cached_reg_t, stop_reply->regcache); + } - /* Expedited registers. */ - if (stop_reply->regcache) - { - cached_reg_t *reg; - int ix; + notice_new_inferiors (ptid, 0); - for (ix = 0; - VEC_iterate(cached_reg_t, stop_reply->regcache, ix, reg); - ix++) - regcache_raw_supply (get_thread_regcache (ptid), - reg->num, reg->data); - VEC_free (cached_reg_t, stop_reply->regcache); + remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p; + remote_watch_data_address = stop_reply->watch_data_address; } - remote_stopped_by_watchpoint_p = stop_reply->stopped_by_watchpoint_p; - remote_watch_data_address = stop_reply->watch_data_address; - stop_reply_xfree (stop_reply); return ptid; } @@ -6635,7 +6631,6 @@ extended_remote_kill (void) if (res != 0) error (_("Can't kill process")); - delete_inferior (pid); target_mourn_inferior (); } -- cgit v1.2.1