aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2008-12-12 01:08:29 +0000
committerPedro Alves <palves@redhat.com>2008-12-12 01:08:29 +0000
commit5f3563ea7a07d0c74d23f6c56281fb27dfc514d8 (patch)
tree952fd0bc66ec98b6a33922bc1c32690c90699119
parentca19bf23094735e554d7101913b42a2d71fce1e5 (diff)
downloadgdb-5f3563ea7a07d0c74d23f6c56281fb27dfc514d8.zip
gdb-5f3563ea7a07d0c74d23f6c56281fb27dfc514d8.tar.gz
gdb-5f3563ea7a07d0c74d23f6c56281fb27dfc514d8.tar.bz2
* remote.c (remote_detach_1): Don't delete the inferior here.
(process_stop_reply): Ditto. (extended_remote_kill): Ditto.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/remote.c41
2 files changed, 24 insertions, 23 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8828900..33a32b6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2008-12-12 Pedro Alves <pedro@codesourcery.com>
+ * remote.c (remote_detach_1): Don't delete the inferior here.
+ (process_stop_reply): Ditto.
+ (extended_remote_kill): Ditto.
+
+2008-12-12 Pedro Alves <pedro@codesourcery.com>
+
* remote.c (read_ptid): If we don't know about any inferior yet,
use the pid of magic_null_ptid.
(remote_start_remote): In the non-stop mode case, don't set
diff --git a/gdb/remote.c b/gdb/remote.c
index 9af9efe..81eef47 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -3316,7 +3316,6 @@ remote_detach_1 (char *args, int from_tty, int extended)
}
discard_pending_stop_replies (pid);
- detach_inferior (pid);
target_mourn_inferior ();
}
@@ -4510,32 +4509,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);
+ notice_new_inferiors (ptid);
- /* Expedited registers. */
- if (stop_reply->regcache)
- {
- cached_reg_t *reg;
- int ix;
+ /* 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);
+ }
- 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;
}
@@ -6509,7 +6505,6 @@ extended_remote_kill (void)
if (res != 0)
error (_("Can't kill process"));
- delete_inferior (pid);
target_mourn_inferior ();
}