public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "tromey at sourceware dot org" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug cli/7234] Re-do GDB's output pager.
Date: Mon, 27 Dec 2021 06:49:16 +0000	[thread overview]
Message-ID: <bug-7234-4717-AVgrjcfkdj@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-7234-4717@http.sourceware.org/bugzilla/>

https://sourceware.org/bugzilla/show_bug.cgi?id=7234

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

--- Comment #2 from Tom Tromey <tromey at sourceware dot org> ---
I looked into this a bit.  There are a lot of bad uses of unfiltered
output -- tedious but easy to fix, I've got a bunch of patches for that.

The difficult part, I think, is that there are spots that use
unfiltered output because the intervention of the pager at that
moment could cause trouble.  For example, targets may announce
things when infrun is doing its thing, and it's not at all clear
to me that this code is set up to handle a random quit().
You can look for print_thread_events to see some examples of
what's being printed.

One idea might be to let this sort of code protect itself
by setting some global variable.  This global would indicate
that the pager should temporarily be disabled.

Alternatively maybe these spots can be made quit-safe.
Or, maybe I'm just mistaken about this.

I'm in favor of implementing this idea, FWIW.  I think it would
remove a contribution / maintenance hurdle in gdb.  It would
probably simplify the pager code.  Also we could finally make
wrap_here a method on ui_file instead of this weird thing we
currently have, where code sometimes does:

      wrap_here ("        ");
      fputs_filtered (i == 0 ? ": " : ", ", stream);

... that is, mixes output to some parameterized stream with
calls to wrap_here, which actually only works for stdout.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

  parent reply	other threads:[~2021-12-27  6:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-7234-4717@http.sourceware.org/bugzilla/>
2021-12-27  6:31 ` tromey at sourceware dot org
2021-12-27  6:49 ` tromey at sourceware dot org [this message]
2021-12-27  6:56 ` tromey at sourceware dot org
2022-01-09  1:14 ` tromey at sourceware dot org
2022-03-29 19:42 ` cvs-commit at gcc dot gnu.org
2022-03-29 19:54 ` tromey at sourceware dot org

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=bug-7234-4717-AVgrjcfkdj@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).