From 68c976001a2ec6b2cd4a53e0ef3714e5f38045d5 Mon Sep 17 00:00:00 2001 From: Pedro Alves 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 938ced774fe..83685a750d3 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 e1e0db686ce..d4cf72c45cb 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.30.2