Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@palves.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH v2 16/16] Document pseudo-terminal and interrupting changes
Date: Wed, 16 Jun 2021 10:31:27 +0100	[thread overview]
Message-ID: <17e0328a-0404-676a-e5e3-fc753e0db979@palves.net> (raw)
In-Reply-To: <83r1h34771.fsf@gnu.org>

Hi!

On 2021-06-15 1:56 p.m., Eli Zaretskii wrote:
>> +On such systems, in some cases, like for example if you need to run
>> +your program and then detach it, and you want the program to remain
>> +associated with a terminal, you may prefer that @value{GDBN} starts
>> +your program using the same device for standard input and output as
>> +@value{GDBN} is using.
> IMHO, this is a misfeature.  If the terminal from which GDB was run
> remains on the system, it would be an unpleasant surprise for the user
> that the program gets hit by SIGHUP when you detach.  I think we
> should try to avoid this side effect, if that's feasible.
> 

Hmm, I'm not sure I follow what you're saying here, maybe I'm misunderstanding.

We no longer get a SIGHUP on detach, that was fixed on v2.  What the text is saying now is
different: because when you start your program with "run", the terminal the inferior is
associated with was created by GDB, when you "detach", GDB destroys the terminal.  The
result is that the program you detached from loses its terminal.  From the detached
program's perspective, it's the same as with current GDB when you do "run", then "detach",
and then close the GDB terminal.  The difference is that with my patches the program
loses its terminal a step earlier.  In v1, the detached program would also get a SIGHUP, 
but that was fixed in v2, it no longer does.

If you really need to do "run" and then "detach" for some reason, _and_ you want
your program to have a terminal, you should start the program with a specified
terminal, like:

 - start the program outside gdb, and then use "attach".  Make sure the terminal
   you started the program at remains alive.

 - use the "tty" command to tell GDB to start the program on some specified terminal 
   (which will outlive gdb and gdb's terminal)

If you're sure gdb's terminal will stay around, and you want to tell GDB to start
the program on that terminal, you can use the "tty /dev/tty" command before starting
the program.

Is this clearer?  I can try to adjust the documentation to explain this better and be more
descriptive like above. 

Thanks,
Pedro Alves

  reply	other threads:[~2021-06-16  9:31 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-14 21:23 [PATCH v2 00/16] Interrupting programs that block/ignore SIGINT Pedro Alves
2021-06-14 21:23 ` [PATCH v2 01/16] Test interrupting programs that block SIGINT [gdb/9425, gdb/14559] Pedro Alves
2021-06-14 21:23 ` [PATCH v2 02/16] prefork_hook: Remove 'args' parameter Pedro Alves
2021-06-14 21:23 ` [PATCH v2 03/16] Make gdb.base/long-inferior-output.exp fail fast Pedro Alves
2021-06-14 21:23 ` [PATCH v2 04/16] Fix gdb.multi/multi-term-settings.exp race Pedro Alves
2021-06-14 21:23 ` [PATCH v2 05/16] Don't check parent pid in gdb.threads/{ia64-sigill, siginfo-threads, watchthreads-reorder}.c Pedro Alves
2021-06-14 21:24 ` [PATCH v2 06/16] Special-case "set inferior-tty /dev/tty" Pedro Alves
2021-06-14 21:24 ` [PATCH v2 07/16] Make inferior/GDB share terminal in tests expecting output after detach Pedro Alves
2021-06-14 21:24 ` [PATCH v2 08/16] Make inferior/GDB share terminal in tests that exercise GDB/inferior reading same input Pedro Alves
2021-06-14 21:24 ` [PATCH v2 09/16] gdb.mi/mi-logging.exp, don't send input to GDB while the inferior is running Pedro Alves
2021-06-14 21:24 ` [PATCH v2 10/16] target_terminal::ours_for_output before printing signal received Pedro Alves
2021-06-14 21:24 ` [PATCH v2 11/16] Move scoped_ignore_sigttou to gdbsupport/ Pedro Alves
2021-06-17 21:49   ` Pedro Alves
2021-06-14 21:24 ` [PATCH v2 12/16] Always put inferiors in their own terminal/session [gdb/9425, gdb/14559] Pedro Alves
2021-06-14 21:24 ` [PATCH v2 13/16] exists_non_stop_target: Avoid flushing frames Pedro Alves
2021-06-14 21:24 ` [PATCH v2 14/16] convert previous_inferior_ptid to strong reference to thread_info Pedro Alves
2021-06-14 21:24 ` [PATCH v2 15/16] GNU/Linux: Interrupt/Ctrl-C with SIGSTOP instead of SIGINT [PR gdb/9425, PR gdb/14559] Pedro Alves
2021-07-08 23:05   ` Maciej W. Rozycki
2021-07-13 15:26     ` Pedro Alves
2021-06-14 21:24 ` [PATCH v2 16/16] Document pseudo-terminal and interrupting changes Pedro Alves
2021-06-15 12:56   ` Eli Zaretskii via Gdb-patches
2021-06-16  9:31     ` Pedro Alves [this message]
2021-06-16 12:29       ` Eli Zaretskii via Gdb-patches
2021-06-16 10:15     ` Pedro Alves
2021-06-16 12:15       ` Eli Zaretskii via Gdb-patches
2021-06-16 12:26         ` Pedro Alves
2021-06-16 13:05           ` Eli Zaretskii via Gdb-patches
2021-06-15 12:34 ` [PATCH v2 00/16] Interrupting programs that block/ignore SIGINT Eli Zaretskii via Gdb-patches
2021-06-16 11:27   ` Pedro Alves
2021-06-16 12:45     ` Eli Zaretskii via Gdb-patches
2021-06-18 10:12 ` Andrew Burgess
2021-06-24 18:12 ` Konstantin Kharlamov via Gdb-patches
2021-06-24 18:55   ` Pedro Alves
2021-06-29  1:15     ` Eldar Abusalimov via Gdb-patches

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=17e0328a-0404-676a-e5e3-fc753e0db979@palves.net \
    --to=pedro@palves.net \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    /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