From: Pedro Alves <palves@redhat.com>
To: Tom Tromey <tom@tromey.com>, Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 00/16] Add styling to the gdb CLI and TUI
Date: Fri, 01 Mar 2019 13:10:00 -0000 [thread overview]
Message-ID: <7975162f-0b68-4826-6d6c-839d7953937d@redhat.com> (raw)
In-Reply-To: <87o9a61qvz.fsf@tromey.com>
On 11/30/2018 04:17 PM, Tom Tromey wrote:
>>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:
>
> Tom> I think it should work, but you'd have to "set style enabled on" first.
>
> Eli> Maybe a TUI invocation should "set style enabled on" on all platforms?
> Eli> Or at least on those that use ncurses?
>
> That would possibly override the user's setting. It's probably better
> to simply implement the console support for Windows. Or, change how the
> disabling is done on Windows -- right now it is done by changing the
> default for this setting, but perhaps it could be done some other way.
>
> Is it possible to ssh in to a Windows machine and then use gdb? That's
> one scenario where you may want to keep the ANSI terminal escape
> sequences in the output. It also may affect how calls to the Windows
> API are handled.
>
> Eli> One problem with this approach is that it needs to fix the escape
> Eli> sequences for the relevant attributes, whereas AFAIU your code
> Eli> simply uses the terminfo that happens to be in effect, is that
> Eli> right?
>
> This patch series uses ANSI escape sequences for the styling; and the
> TUI decodes these and turns them into curses calls.
>
> Tom> Doing it that way can't work due to buffering.
>
> Eli> Not sure I understand. Console output is generally line-buffered, and
> Eli> there's fflush to force writing any buffered output before applying
> Eli> text attributes. Am I missing something?
>
> utils.c implements its own buffering. Previous to this series this was
> only done when "wrap_column > 0", but patch #1 changes this code to
> always buffer.
>
> This is a problem for other approaches because styles are emitted inline
> with other text; and then flushed as a unit.
>
> Tom> Also, this approach would be undesirable anyway, because GNU Source
> Tom> Highlight emits escape codes -- that's why I abandoned my earlier
> Tom> plan of implementing styling as objects in the utils.c buffer.
>
> Eli> What is GNU Source Highlight, and what is its relevance to the issue
> Eli> at hand?
>
> GNU Source Highlight is used to style source text.
>
> https://www.gnu.org/software/src-highlite/
>
> Support for using it is added to gdb in patch #15.
>
> Tom> Instead, I think filtering the escape sequences is really the only
> Tom> way.
>
> Eli> The problem with that is that it hard-codes the SGR sequences concepts
> Eli> right into the design, and the escape sequences are unknown in advance
> Eli> on systems where there's no terminfo.
>
> Only terminals using the ANSI sequences are supported by this series, at
> least for the CLI. The TUI can support more in theory, though I have no
> way to test that.
The Windows console in Windows 10 Anniversary Update supports ANSI escape sequences:
[1] https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences
[2] https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/
Basically, GDB needs to call SetConsoleMode with
ENABLE_VIRTUAL_TERMINAL_PROCESSING at early startup to enable the feature.
There's an example at the bottom of page [1] above.
I have no idea whether that interacts badly with readline or curses, but
it seems like the ideal solution going forward.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2019-03-01 13:10 UTC|newest]
Thread overview: 99+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-28 0:16 Tom Tromey
2018-11-28 0:14 ` [PATCH 12/16] Style addresses Tom Tromey
2018-11-28 0:14 ` [PATCH 02/16] Add a "context" argument to add_setshow_enum_cmd Tom Tromey
2018-11-28 0:14 ` [PATCH 05/16] Add output styles to gdb Tom Tromey
2018-12-24 4:08 ` Joel Brobecker
2018-12-28 18:55 ` Tom Tromey
2018-11-28 0:14 ` [PATCH 09/16] Style print_address_symbolic Tom Tromey
2018-11-28 0:14 ` [PATCH 14/16] Use wclrtoeol in tui_show_source_line Tom Tromey
2018-12-24 8:03 ` Joel Brobecker
2018-11-28 0:14 ` [PATCH 03/16] Introduce ui_file_style Tom Tromey
2018-12-24 3:40 ` Joel Brobecker
2018-12-28 18:54 ` Tom Tromey
2018-11-28 0:14 ` [PATCH 10/16] Style the gdb welcome message Tom Tromey
2018-11-28 0:14 ` [PATCH 06/16] Reset terminal styles Tom Tromey
2018-12-24 4:16 ` Joel Brobecker
2018-12-28 19:01 ` Tom Tromey
2018-11-28 0:16 ` [PATCH 11/16] Style the "Reading symbols" message Tom Tromey
2018-11-28 0:16 ` [PATCH 16/16] Document the "set style" commands Tom Tromey
2018-11-28 6:51 ` Eli Zaretskii
2018-12-28 19:19 ` Tom Tromey
2018-11-28 0:16 ` [PATCH 13/16] Make ANSI terminal escape sequences work in TUI Tom Tromey
2018-12-24 8:02 ` Joel Brobecker
2018-12-28 19:42 ` Tom Tromey
2018-11-28 0:16 ` [PATCH 15/16] Highlight source code using GNU Source Highlight Tom Tromey
2019-11-16 0:58 ` Andrew Pinski
2019-11-16 8:19 ` Eli Zaretskii
2019-11-24 17:41 ` Tom Tromey
2019-11-24 18:13 ` Christian Biesinger via gdb-patches
2019-11-24 19:53 ` Tom Tromey
2018-11-28 0:16 ` [PATCH 07/16] Style variable names Tom Tromey
2018-11-28 0:16 ` [PATCH 08/16] Style locations when setting a breakpoint Tom Tromey
2018-11-28 0:16 ` [PATCH 04/16] Change gdb test suite's TERM setting Tom Tromey
2018-11-28 0:19 ` [PATCH 01/16] Change wrap buffering to use a std::string Tom Tromey
2018-12-23 15:26 ` Joel Brobecker
2018-12-28 18:47 ` Tom Tromey
2018-11-28 7:02 ` [PATCH 00/16] Add styling to the gdb CLI and TUI Eli Zaretskii
2018-11-29 22:44 ` Tom Tromey
2018-11-30 7:02 ` Eli Zaretskii
2018-11-30 16:17 ` Tom Tromey
2018-12-23 10:49 ` Joel Brobecker
2019-03-01 13:10 ` Pedro Alves [this message]
2019-03-01 13:56 ` Eli Zaretskii
2019-03-01 14:10 ` Pedro Alves
2019-03-01 14:50 ` Eli Zaretskii
2019-03-01 7:47 ` Eli Zaretskii
2019-03-01 18:42 ` Tom Tromey
2019-03-01 19:40 ` Eli Zaretskii
2019-03-01 21:04 ` Tom Tromey
2019-03-02 7:15 ` Eli Zaretskii
2019-03-03 15:42 ` Eli Zaretskii
2019-03-04 15:08 ` Tom Tromey
2019-03-04 15:57 ` Eli Zaretskii
2019-03-04 16:16 ` Tom Tromey
2019-03-05 15:38 ` Eli Zaretskii
2019-03-08 14:55 ` Eli Zaretskii
2019-03-08 16:14 ` Hannes Domani via gdb-patches
2019-03-08 21:08 ` Tom Tromey
2019-03-08 21:11 ` Tom Tromey
2019-03-09 6:49 ` Eli Zaretskii
2019-03-03 15:53 ` Eli Zaretskii
2019-03-03 16:16 ` Matt Rice
2019-03-03 17:13 ` Eli Zaretskii
2019-03-03 18:04 ` Matt Rice
2019-03-04 15:01 ` Tom Tromey
2019-03-04 17:37 ` Eli Zaretskii
2019-03-04 17:40 ` Tom Tromey
2019-03-06 16:02 ` Eli Zaretskii
2019-03-20 19:35 ` GDB version as convenience variable Eli Zaretskii
2019-03-25 17:31 ` Eli Zaretskii
2019-03-25 17:58 ` Simon Marchi
2019-03-25 18:10 ` Eli Zaretskii
2019-03-25 18:33 ` Simon Marchi
2019-03-25 18:37 ` Simon Marchi
2019-03-25 18:43 ` Eli Zaretskii
2019-03-25 18:51 ` Simon Marchi
2019-03-25 19:19 ` Eli Zaretskii
2019-03-26 14:47 ` Simon Marchi
2019-03-26 20:57 ` Joel Brobecker
2019-03-27 3:34 ` Eli Zaretskii
2019-03-27 12:56 ` Joel Brobecker
2019-03-30 17:25 ` Simon Marchi
2019-03-30 10:01 ` Eli Zaretskii
2019-03-21 1:55 ` [PATCH 00/16] Add styling to the gdb CLI and TUI Simon Marchi
2019-03-21 14:38 ` Eli Zaretskii
2019-03-21 15:02 ` Simon Marchi
2019-03-21 16:01 ` Eli Zaretskii
2019-03-21 16:06 ` Simon Marchi
2019-03-21 16:12 ` Pedro Alves
2019-03-21 16:54 ` John Baldwin
2019-03-21 17:02 ` Eli Zaretskii
2019-03-21 18:08 ` Simon Marchi
2019-03-21 18:19 ` Pedro Alves
2019-03-21 18:38 ` Eli Zaretskii
2019-03-07 6:02 ` Joel Brobecker
2019-03-07 14:53 ` Eli Zaretskii
2019-03-08 5:40 ` Joel Brobecker
2019-03-04 16:04 ` Eli Zaretskii
2018-12-24 9:27 ` Joel Brobecker
2018-12-28 20:57 ` 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=7975162f-0b68-4826-6d6c-839d7953937d@redhat.com \
--to=palves@redhat.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=tom@tromey.com \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).