aboutsummaryrefslogtreecommitdiff
path: root/gdb/remote.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2008-02-27 21:00:01 +0000
committerDaniel Jacobowitz <drow@false.org>2008-02-27 21:00:01 +0000
commit20b4711e0556d73b7a16250447ee5ca505b834db (patch)
tree4ccac29e88798ff609179a0e8a12c848113d4f49 /gdb/remote.c
parent1843f87b0a15f16efb29bb2493c0cae8d7d740b6 (diff)
downloadgdb-20b4711e0556d73b7a16250447ee5ca505b834db.zip
gdb-20b4711e0556d73b7a16250447ee5ca505b834db.tar.gz
gdb-20b4711e0556d73b7a16250447ee5ca505b834db.tar.bz2
* remote.c (remote_wait, remote_async_wait): Stop if we receive
an error.
Diffstat (limited to 'gdb/remote.c')
-rw-r--r--gdb/remote.c12
1 files changed, 10 insertions, 2 deletions
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;