aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/remote.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 13b37ce..f5afe11 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2008-02-27 Daniel Jacobowitz <dan@codesourcery.com>
+ * remote.c (remote_wait, remote_async_wait): Stop if we receive
+ an error.
+
+2008-02-27 Daniel Jacobowitz <dan@codesourcery.com>
+
* utils.c (debug_timestamp): New.
(vfprintf_unfiltered): Print timestamps if requested.
(show_debug_timestamp): New.
diff --git a/gdb/remote.c b/gdb/remote.c
index 3f50ff2..a5349b4 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -3403,8 +3403,12 @@ remote_wait (ptid_t ptid, struct target_waitstatus *status)
switch (buf[0])
{
case 'E': /* Error of some sort. */
+ /* We're out of sync with the target now. Did it continue or not?
+ Not is more likely, so report a stop. */
warning (_("Remote failure reply: %s"), buf);
- continue;
+ status->kind = TARGET_WAITKIND_STOPPED;
+ status->value.sig = TARGET_SIGNAL_0;
+ goto got_status;
case 'F': /* File-I/O request. */
remote_fileio_request (buf);
continue;
@@ -3631,8 +3635,12 @@ remote_async_wait (ptid_t ptid, struct target_waitstatus *status)
switch (buf[0])
{
case 'E': /* Error of some sort. */
+ /* We're out of sync with the target now. Did it continue or not?
+ Not is more likely, so report a stop. */
warning (_("Remote failure reply: %s"), buf);
- continue;
+ status->kind = TARGET_WAITKIND_STOPPED;
+ status->value.sig = TARGET_SIGNAL_0;
+ goto got_status;
case 'F': /* File-I/O request. */
remote_fileio_request (buf);
continue;