diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 061be3ece7..ee8bd5f91b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Fri Aug 12 15:52:37 1994 Stu Grossman (grossman@cygnus.com) + + * remote.c (remote_wait): Return inferior_pid instead of 0 for + `W` message. + Fri Aug 12 11:47:10 1994 J.T. Conklin (jtc@phishhead.cygnus.com) * sparclite/aload.c (sys_error, error): Use vfprintf to variable diff --git a/gdb/remote.c b/gdb/remote.c index 8debf22b17..fb6184a3f2 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -411,13 +411,6 @@ device is attached to the remote system (e.g. /dev/ttya)."); stub to another, we can (if the target is closed and reopened) cope. */ stub_supports_P = 1; - /* Start the remote connection; if error (0), discard this target. - In particular, if the user quits, be sure to discard it - (we'd be in an inconsistent state otherwise). */ - if (!catch_errors (remote_start_remote, (char *)0, - "Couldn't establish connection to remote target\n", RETURN_MASK_ALL)) - pop_target(); - /* Without this, some commands which require an active target (such as kill) won't work. This variable serves (at least) double duty as both the pid of the target process (if it has such), and as a flag indicating that a @@ -425,7 +418,14 @@ device is attached to the remote system (e.g. /dev/ttya)."); variables, especially since GDB will someday have a notion of debugging several processes. */ - inferior_pid = -1; + inferior_pid = 42000; + + /* Start the remote connection; if error (0), discard this target. + In particular, if the user quits, be sure to discard it + (we'd be in an inconsistent state otherwise). */ + if (!catch_errors (remote_start_remote, (char *)0, + "Couldn't establish connection to remote target\n", RETURN_MASK_ALL)) + pop_target(); } /* remote_detach() @@ -630,13 +630,13 @@ remote_wait (pid, status) status->value.sig = (enum target_signal) (((fromhex (buf[1])) << 4) + (fromhex (buf[2]))); - return 0; + return inferior_pid; case 'W': /* Target exited */ { /* The remote process exited. */ status->kind = TARGET_WAITKIND_EXITED; status->value.integer = (fromhex (buf[1]) << 4) + fromhex (buf[2]); - return 0; + return inferior_pid; } case 'O': /* Console output */ fputs_filtered (buf + 1, gdb_stdout);