This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Still some style problems with 8.3 branch
- From: Philippe Waroquiers <philippe dot waroquiers at skynet dot be>
- To: Eli Zaretskii <eliz at gnu dot org>, Tom Tromey <tom at tromey dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Sun, 07 Apr 2019 12:08:04 +0200
- Subject: Re: Still some style problems with 8.3 branch
- References: <1553942211.1854.2.camel@skynet.be> <835zrzi0d7.fsf@gnu.org> <83wokbc5lk.fsf@gnu.org>
I have just done some tests, comparing the behaviour
of the 8.3 branch with and without the patch suggested by Eli.
It works better with the patch, but even with the patch,
I still encountered one case where the style was not
the expected style after the continuation prompt.
To reproduce (in a 80x24 terminal):
./gdb/gdb ./gdb/gdb
break cli_ui_out::do_field_string
run gdb/testsuite/outputs/gdb.ada/info_auto_lang/proc_in_ada
(gdb) b proc_in_c
(gdb) run
info func error
#### then type several times return at the page prompt.
#### At some point in time, you see
0x00007ffff691d360 transaction clone for std::overflow_error::overflow_error(st
--Type <RET> for more, q to quit, c to continue without paging--
d::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
And the line after the prompt is unexpectedly in black.
This is both with and without the patch.
Philippe
On Wed, 2019-04-03 at 21:21 +0300, Eli Zaretskii wrote:
> Ping!
>
> > Date: Sun, 31 Mar 2019 17:28:52 +0300
> > From: Eli Zaretskii <eliz@gnu.org>
> > CC: gdb-patches@sourceware.org
> >
> > > From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
> > > Date: Sat, 30 Mar 2019 11:36:51 +0100
> > >
> > > I just encountered a styling problem with the 8.3 branch
> > > (also on the 8.4).
> > > Test executed with GNU gdb (GDB) 8.2.91.20190330-git
> > >
> > > To reproduce:
> > > ./gdb/gdb ./gdb/gdb
> > > info sources
> > > and then type return successively, to see each page.
> > > After the initial page, the first line contains a file that
> > > is partially printed in green color, partially printed in black color,
> > > e.g., in the below given output.
> > > The line that starts with '--Type <RET>' is in black, as expected.
> > > Then the next line starts in green as expected.
> > > But only '/bd/home/ph' is in green.
> > > We then have 'ilippe/gdb/git/relbranch/gdb/minsyms.h,' in black.
> > > Then all is normal till the next page.
> > >
> > > So, that seems to point at some remaining problem in the
> > > buffering/output of style/color codes.
> >
> > I don't think it's due to buffering. If I #ifdef away this part near
> > the end of prompt_for_continue:
> >
> > /* Restore the current styling. */
> > if (can_emit_style_escape (gdb_stdout))
> > emit_style_escape (applied_style);
> >
> > then the problem seems to go away. So I think this style setting is
> > what causes the problem, probably because applied_style has the wrong
> > value here? The incorrect style seems to start precisely from the
> > first character that exceeds the last column of a line, so I think
> > it's indeed due to the above snippet.
> >
> > Tom, can you look into this, please?
> >