From 66dd84c488d6f6872e6da3a68c231956a1b8efe8 Mon Sep 17 00:00:00 2001 From: palves Date: Wed, 25 Mar 2009 22:27:49 +0000 Subject: [PATCH] * remote.c (remote_start_remote): In non-stop mode, call init_wait_for_inferior before adding threads and inferiors. --- gdb/ChangeLog | 5 +++++ gdb/remote.c | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 938ced774f..83685a750d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-03-25 Pedro Alves + + * remote.c (remote_start_remote): In non-stop mode, call + init_wait_for_inferior before adding threads and inferiors. + 2009-03-25 Joel Brobecker * breakpoint.c (breakpoint_thread_match): Split a large condition diff --git a/gdb/remote.c b/gdb/remote.c index e1e0db686c..d4cf72c45c 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. */ -- 2.11.0