From: Eli Zaretskii via Gdb-patches <gdb-patches@sourceware.org>
To: Pedro Alves <pedro@palves.net>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 00/17] Interrupting programs that block/ignore SIGINT
Date: Tue, 15 Jun 2021 15:18:36 +0300 [thread overview]
Message-ID: <83tulz48yr.fsf@gnu.org> (raw)
In-Reply-To: <2af9e861-69f2-80c5-606b-2936b6d2d212@palves.net> (message from Pedro Alves on Mon, 14 Jun 2021 18:55:17 +0100)
> From: Pedro Alves <pedro@palves.net>
> Cc: gdb-patches@sourceware.org
> Date: Mon, 14 Jun 2021 18:55:17 +0100
>
> On 2021-06-03 8:51 p.m., Eli Zaretskii wrote:
> >> From: Pedro Alves <pedro@palves.net>
> >> Date: Thu, 3 Jun 2021 20:02:26 +0100
> >>
> >> Currently, on GNU/Linux, it is not possible to interrupt with Ctrl-C
> >> programs that block or ignore SIGINT, with e.g., sigprocmask or
> >> signal(SIGINT, SIG_IGN). You type Ctrl-C, but nothing happens.
> >
> > I'm not sure I understand why this is a problem. If a debuggee blocks
> > or ignores SIGINT, then SIGINT cannot be used to stop it, neither when
> > it runs outside the debugger nor when it runs under a debugger. There
> > are enough other methods to stop such a debuggee (e.g., send it a
> > different signal), but basically such a program clearly tells that it
> > doesn't want to be interrupted by SIGINT, period.
>
> It sounds like you're taking the view that Ctrl-C should be seen by the
> inferior first, and behave exactly as if you were not debugging
> the program?
>
> My view is that, as a user, I see Ctrl-C as the standard way across configurations
> to interrupt programs so I can inspect them. When I type Ctrl-C, I'm telling
> GDB that I want to stop the program.
Actually, my original problem was caused by your use of "interrupt a
program", when what you actually meant (AFAIU now) was "stop the
program". This was what originally set me off: the above text you
posted as the preamble for your patch reads like it's saying that
something is wrong with the situation where programs that don't want
to be interrupted by Ctrl-C can't be interrupted by SIGINT under GDB.
Thus my reaction.
However, thinking about the issue some more, now that I understand
what you meant, I do indeed think that programs which block or ignore
SIGINT should not be stopped by Ctrl-C under GDB. The reason is
simple: SIGINT is just another fatal signal. Any fatal signal
delivered to a program being debugged will not stop the program if the
program blocks or ignores that signal, right? So why should SIGINT be
special?
IOW, Are you sure your expectations are not based on old habits, where
"normally" Ctrl-C can be used to stop a debuggee, and thus it is a
convenient means of doing so?
I wonder how many others here think like you and how many think like
me. If I'm the odd one out, then I won't continue talking about this
aspect of your patches.
I'm glad you found a way of making the effects of these changes less
surprising, but I still have a couple of issues with the changes,
which I will raise in response to your v2.
next prev parent reply other threads:[~2021-06-15 12:19 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-03 19:02 Pedro Alves
2021-06-03 19:02 ` [PATCH 01/17] Test interrupting programs that block SIGINT [gdb/9425, gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 02/17] prefork_hook: Remove 'args' parameter Pedro Alves
2021-06-03 19:02 ` [PATCH 03/17] Fix silent gdb.base/annota1.exp test coverage regression Pedro Alves
2021-06-03 19:28 ` Andrew Burgess
2021-06-14 20:30 ` Pedro Alves
2021-06-03 19:02 ` [PATCH 04/17] Make gdb.base/long-inferior-output.exp fail fast Pedro Alves
2021-06-03 19:02 ` [PATCH 05/17] Fix gdb.multi/multi-term-settings.exp race Pedro Alves
2021-06-03 19:02 ` [PATCH 06/17] Don't check parent pid in gdb.threads/{ia64-sigill, siginfo-threads, watchthreads-reorder}.c Pedro Alves
2021-06-03 19:02 ` [PATCH 07/17] Special-case "set inferior-tty /dev/tty" Pedro Alves
2021-06-03 19:02 ` [PATCH 08/17] Make inferior/GDB share terminal in run+detach testcases Pedro Alves
2021-07-02 19:31 ` Tom Tromey
2021-06-03 19:02 ` [PATCH 09/17] Make inferior/GDB share terminal in tests that exercise GDB/inferior reading same input Pedro Alves
2021-06-03 19:02 ` [PATCH 10/17] gdb.mi/mi-logging.exp, don't send input to GDB while the inferior is running Pedro Alves
2021-06-03 19:02 ` [PATCH 11/17] target_terminal::ours_for_output before printing signal received Pedro Alves
2021-06-03 19:02 ` [PATCH 12/17] Move scoped_ignore_sigttou to gdbsupport/ Pedro Alves
2021-06-03 19:02 ` [PATCH 13/17] Always put inferiors in their own terminal/session [gdb/9425, gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 14/17] exists_non_stop_target: Avoid flushing frames Pedro Alves
2021-06-03 19:02 ` [PATCH 15/17] convert previous_inferior_ptid to strong reference to thread_info Pedro Alves
2021-06-03 19:02 ` [PATCH 16/17] GNU/Linux: Interrupt/Ctrl-C with SIGSTOP instead of SIGINT [PR gdb/9425, PR gdb/14559] Pedro Alves
2021-06-03 19:02 ` [PATCH 17/17] Document pseudo-terminal and interrupting changes Pedro Alves
2021-06-03 19:28 ` Eli Zaretskii via Gdb-patches
2021-06-03 19:51 ` [PATCH 00/17] Interrupting programs that block/ignore SIGINT Eli Zaretskii via Gdb-patches
2021-06-13 10:41 ` Eli Zaretskii via Gdb-patches
2021-06-14 16:29 ` Pedro Alves
2021-06-14 17:10 ` Eli Zaretskii via Gdb-patches
2021-06-14 17:55 ` Pedro Alves
2021-06-15 12:18 ` Eli Zaretskii via Gdb-patches [this message]
2021-06-15 15:50 ` John Baldwin
2021-06-15 16:18 ` Eli Zaretskii via Gdb-patches
2021-06-15 16:41 ` John Baldwin
2021-06-16 10:01 ` Pedro Alves
2021-06-16 12:10 ` Eli Zaretskii via Gdb-patches
2021-06-16 15:06 ` John Baldwin
2021-07-02 19:35 ` Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83tulz48yr.fsf@gnu.org \
--to=gdb-patches@sourceware.org \
--cc=eliz@gnu.org \
--cc=pedro@palves.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox