From: Yao Qi Date: Fri, 30 Sep 2016 17:39:12 +0000 (+0100) Subject: PR 20627: Use resume_stop to stop lwp X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=17e16485989c7e91ba1ec5abf397f7f91a299eec;p=binutils-gdb.git PR 20627: Use resume_stop to stop lwp Commit 049a8570 (Use target_continue{,_no_signal} instead of target_resume) replaces the code stopping lwp with target_continue_no_signal in target_stop_and_wait, like this, - resume_info.thread = ptid; - resume_info.kind = resume_stop; - resume_info.sig = GDB_SIGNAL_0; - (*the_target->resume) (&resume_info, 1); + target_continue_no_signal (ptid); the replacement is not equivalent, and it causes PR 20627. This patch is just to revert that change. Regression testing it on x86_64-linux. gdb/gdbserver: 2016-09-30 Yao Qi PR gdbserver/20627 * target.c (target_stop_and_wait): Don't call target_continue_no_signal, use resume_stop instead. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index aace87752f2..5c2cca9f98f 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2016-09-30 Yao Qi + + PR gdbserver/20627 + * target.c (target_stop_and_wait): Don't call + target_continue_no_signal, use resume_stop instead. + 2016-09-26 Yao Qi * linux-low.c (linux_wait_1): Call debug_exit. diff --git a/gdb/gdbserver/target.c b/gdb/gdbserver/target.c index cf3da474830..fd7c7141db8 100644 --- a/gdb/gdbserver/target.c +++ b/gdb/gdbserver/target.c @@ -248,8 +248,12 @@ target_stop_and_wait (ptid_t ptid) { struct target_waitstatus status; int was_non_stop = non_stop; + struct thread_resume resume_info; - target_continue_no_signal (ptid); + resume_info.thread = ptid; + resume_info.kind = resume_stop; + resume_info.sig = GDB_SIGNAL_0; + (*the_target->resume) (&resume_info, 1); non_stop = 1; mywait (ptid, &status, 0, 0);