From: Pedro Alves <palves@redhat.com>
To: Patrick Palka <patrick@parcs.ath.cx>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Call target_terminal_ours in quit_force
Date: Tue, 28 Jul 2015 10:41:00 -0000 [thread overview]
Message-ID: <55B75C57.6040409@redhat.com> (raw)
In-Reply-To: <CA+C-WL9xV86-K8UrZYnCNgJOmsQpHi7WNkxBwNue69UWNuVq6A@mail.gmail.com>
On 07/27/2015 08:12 PM, Patrick Palka wrote:
> On Mon, Jul 27, 2015 at 2:49 PM, Patrick Palka <patrick@parcs.ath.cx> wrote:
>> On Mon, Jul 27, 2015 at 12:39 PM, Pedro Alves <palves@redhat.com> wrote:
>>> On 07/27/2015 05:11 PM, Patrick Palka wrote:
>>>> On Mon, Jul 27, 2015 at 12:08 PM, Patrick Palka <patrick@parcs.ath.cx> wrote:
>>>>> We should make sure our terminal settings are in effect before finally
>>>>> quitting GDB. Our terminal settings may not be in effect at this point
>>>>> if we are e.g. quitting due to a SIGTERM.
>>>>
>>>> I should add, "quitting due to a SIGTERM while an inferior an inferior
>>>> is running in the foreground."
>>>
>>> Looks OK, though I notice that the settings are broken even if we
>>> we're not debugging anything:
>>>
>>> $ stty
>>> speed 38400 baud; line = 0;
>>> iutf8
>>>
>>> $ ./gdb
>>> GNU gdb (GDB) 7.10.50.20150726-cvs
>>> (gdb)
>>> *sent SIGTERM from another terminal, gdb exits*
>>> $
>>> $ stty (echo is off)
>>> speed 38400 baud; line = 0;
>>> lnext = <undef>; min = 1; time = 0;
>>> -icrnl iutf8
>>> -icanon -echo
>>> $
>>>
>>> Do you also see this?
>>
>> Yeah, even with this patch...
>>
>> $ stty
>> speed 38400 baud; line = 0;
>> -brkint -imaxbel iutf8
>> $ gdb -q
>> (gdb) *SIGTERM*
>> $ stty
>> speed 38400 baud; line = 0;
>> lnext = <undef>;
>> -brkint -icrnl -imaxbel iutf8
>>
>> Quitting via the "quit" command is OK though... strange.
>
> This happens because when quitting via SIGTERM a readline callback
> handler remains installed which means that the terminal is still
> prepped by readline. The readline callback handler is temporarily
> removed during the execution of a command (thus deprepping the
> terminal) which is why quitting via "quit" does not leak our terminal
> settings.
Yeah. Sounds like we should call gdb_rl_callback_handler_remove.
And remove the input fd from the event loop too, otherwise pending input
may end up waking some nested event loop and end up in readline with
no callback installed, which aborts. Looks like gdb_disable_readline
would do?
Thanks,
Pedro Alves
prev parent reply other threads:[~2015-07-28 10:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-27 16:08 Patrick Palka
2015-07-27 16:12 ` Patrick Palka
2015-07-27 16:37 ` Andreas Schwab
2015-07-27 18:23 ` Pedro Alves
2015-07-27 18:49 ` Patrick Palka
2015-07-27 19:12 ` Patrick Palka
2015-07-28 10:41 ` Pedro Alves [this message]
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=55B75C57.6040409@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=patrick@parcs.ath.cx \
/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