This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix fail in gdb.base/interrupt-noterm.exp
- From: Pedro Alves <palves at redhat dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>, gdb-patches at sourceware dot org
- Date: Fri, 22 Jan 2016 16:47:15 +0000
- Subject: Re: [PATCH] Fix fail in gdb.base/interrupt-noterm.exp
- Authentication-results: sourceware.org; auth=none
- References: <1453480183-5131-1-git-send-email-yao dot qi at linaro dot org>
On 01/22/2016 04:29 PM, Yao Qi wrote:
> Hi,
> In my testing, I see the following fail intermittently,
>
> interrupt
> (gdb) PASS: gdb.base/interrupt-noterm.exp: interrupt
> [Inferior 1 (process 13407) exited normally]
>
> Child exited with status 0
> FAIL: gdb.base/interrupt-noterm.exp: inferior received SIGINT (timeout)
>
> because the interrupt packet may be sent to GDBserver before the SIGIO
> handler is installed. The fix in this patch is to let GDB wait
> for 500 ms between "continue &" and "interrupt" to make sure
> SIGIO handler is installed already in GDBserver side.
Can you expand the rationale some more?
E.g., why is this not a gdbserver bug? Instintively I'd say it is.
Thanks,
Pedro Alves
>
> gdb/testsuite:
>
> 2016-01-22 Yao Qi <yao.qi@linaro.org>
>
> * gdb.base/interrupt-noterm.exp: Add "after 500".
> ---
> gdb/testsuite/gdb.base/interrupt-noterm.exp | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/gdb/testsuite/gdb.base/interrupt-noterm.exp b/gdb/testsuite/gdb.base/interrupt-noterm.exp
> index 05f6076..9b5bb17 100644
> --- a/gdb/testsuite/gdb.base/interrupt-noterm.exp
> +++ b/gdb/testsuite/gdb.base/interrupt-noterm.exp
> @@ -55,6 +55,9 @@ if { $async_supported < 0 } {
> return 1
> }
>
> +# Wait a while so that GDBserver's SIGIO handler is in place.
> +after 500
> +
> # With native debugging, and no terminal (emulated by interactive-mode
> # off, above), GDB had a bug where "interrupt" would send SIGINT to
> # its own process group, instead of the inferior's.
>