diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/remote.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 938ced7..83685a7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-03-25 Pedro Alves <pedro@codesourcery.com> + + * remote.c (remote_start_remote): In non-stop mode, call + init_wait_for_inferior before adding threads and inferiors. + 2009-03-25 Joel Brobecker <brobecker@adacore.com> * breakpoint.c (breakpoint_thread_match): Split a large condition diff --git a/gdb/remote.c b/gdb/remote.c index e1e0db6..d4cf72c 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -2740,6 +2740,13 @@ remote_start_remote (struct ui_out *uiout, void *opaque) } else { + /* Clear WFI global state. Do this before finding about new + threads and inferiors, and setting the current inferior. + Otherwise we would clear the proceed status of the current + inferior when we want its stop_soon state to be preserved + (see notice_new_inferior). */ + init_wait_for_inferior (); + /* In non-stop, we will either get an "OK", meaning that there are no stopped threads at this time; or, a regular stop reply. In the latter case, there may be more than one thread @@ -2800,8 +2807,6 @@ remote_start_remote (struct ui_out *uiout, void *opaque) /* In non-stop mode, any cached wait status will be stored in the stop reply queue. */ gdb_assert (wait_status == NULL); - - init_wait_for_inferior (); } /* If we connected to a live target, do some additional setup. */ |