Message ID | 877efqlgu6.fsf@tromey.com |
---|---|
State | New, archived |
Headers |
Received: (qmail 24400 invoked by alias); 30 Dec 2018 23:45:37 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 24292 invoked by uid 89); 30 Dec 2018 23:45:24 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: gateway21.websitewelcome.com Received: from gateway21.websitewelcome.com (HELO gateway21.websitewelcome.com) (192.185.45.133) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 30 Dec 2018 23:45:15 +0000 Received: from cm16.websitewelcome.com (cm16.websitewelcome.com [100.42.49.19]) by gateway21.websitewelcome.com (Postfix) with ESMTP id 3BF4A400D4D27 for <gdb-patches@sourceware.org>; Sun, 30 Dec 2018 17:45:06 -0600 (CST) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id dklWg7lsd4FKpdklWgazj1; Sun, 30 Dec 2018 17:45:06 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=fKf14Uj126gKkUYBK4FiHjZm26hWMkBtqvJdziCAfp4=; b=njAAVkq/SnKhLsd0nx6rGzt/WP HnIbIBnO60kHiD/w9gz+dlJ0EDO4nhugRjbW3yVQcyyTr7T/pttpP2sFzNJxVtwTe9k6X9Ty/LoSy nI51TdgMjeChn3b7sQBcV4vML; Received: from 75-166-72-210.hlrn.qwest.net ([75.166.72.210]:42186 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <tom@tromey.com>) id 1gdklW-003HNP-AR; Sun, 30 Dec 2018 17:45:06 -0600 From: Tom Tromey <tom@tromey.com> To: Tom Tromey <tom@tromey.com> Cc: Philippe Waroquiers <philippe.waroquiers@skynet.be>, gdb-patches@sourceware.org Subject: Re: GDB ui word wrapping broken/interferes with 'set style' ? References: <1546181481.12900.10.camel@skynet.be> <87ftuelq21.fsf@tromey.com> Date: Sun, 30 Dec 2018 16:45:05 -0700 In-Reply-To: <87ftuelq21.fsf@tromey.com> (Tom Tromey's message of "Sun, 30 Dec 2018 13:25:58 -0700") Message-ID: <877efqlgu6.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.90 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain |
Commit Message
Tom Tromey
Dec. 30, 2018, 11:45 p.m. UTC
Tom> Seems very likely. Thanks for the report, I will look into it. Please try this. I think it fixes both of the styling problems you reported, but it's better if you check it too. If it works for you I will write a test case. thanks, Tom
Comments
On Sun, 2018-12-30 at 16:45 -0700, Tom Tromey wrote: > Tom> Seems very likely. Thanks for the report, I will look into it. > > Please try this. I think it fixes both of the styling problems you > reported, but it's better if you check it too. If it works for you I > will write a test case. Function and address colors are now as expected in the backtrace. For word wrapping, I could not make it split addresses anymore, but I still see differences with the 8.2 behaviour, where the new gdb git+patch still splits filenames or some values. 8.2: (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 (gdb) git+patch: (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lan g/proc_in_ada.adb:22 (gdb) (in both cases, 'show width' shows 116). In a top-gdb debugging itself, I e.g. got the 'style' value which is split after FUNCTIO: Breakpoint 3, cli_ui_out::do_field_string (this=0x562a4563f010, fldno=<optimized out>, width=<optimized out>, align= ui_noalign, fldname=<optimized out>, string=0x7ffd643d1ac8 "proc_in_ada", style=ui_out_style_kind::FUNCTIO N) at ../../smallthing/gdb/cli-out.c:174 174 fstyle = function_name_style.style (); (top-gdb) show width Number of characters gdb thinks are in a line is 116. If I change the width, the new gdb gives: (gdb) set width 40 (gdb) bt #0 proc_in_c () at /bd/home/philippe/gd b/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smal lthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 (gdb) while 8.2 gives: (gdb) set width 40 (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 (gdb) Playing further with smaller width, git+patch: <et width 15 (gdb) bt #0 proc_in_c ( ) at /bd/h ome/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at / bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 <idth 14 (gdb) bt #0 proc_in_c () at /bd/ home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () a t /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 <idth 13 (gdb) bt #0 proc_in_c () at /bd/ho me/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada ( ) at /bd /home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 (gdb) 8.2: (gdb) set width 15 (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 <idth 14 (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 < width 13 (gdb) bt #0 proc_in_c () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c:26 #1 0x0000555555555477 in proc_in_ada () at /bd/home/philippe/gdb/git/smallthing/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb:22 (gdb) Note that the behaviour of 8.2 is not always consistent for all commands. E.g. info breaks in top-gdb gives: (top-gdb) info break Num Type Disp Enb Address What 1 breakpoint keep y 0x0000562a43bbbdd0 in internal_error(char const*, int, char const*, ...) at ../../smallthing/gdb/common/errors.c:51 2 breakpoint keep y 0x0000562a43ba3510 in info_command(char const*, int) at ../../smallthing/gdb/cli/cli-cmds.c:199 silent return 3 breakpoint keep y 0x0000562a43ba2610 in cli_ui_out::do_field_string(int, int, ui_align, char const*, char const*, ui_out_style_kind) at ../../smallthing/gdb/cli-out.c:174 breakpoint already hit 2 times (top-gdb) So, it splits before the ' at' in the first 2, but uses one single line for the 3rd breakpoint. gdb+patch gives: (top-gdb) info break Num Type Disp Enb Address What 1 breakpoint keep y 0x0000562a43bbbdd0 in internal_error(char const*, int, char const*, ...) at ../../sm allthing/gdb/common/errors.c:51 2 breakpoint keep y 0x0000562a43ba3510 in info_command(char const*, int) at ../../smallthing/gdb/cli/cli -cmds.c:199 silent return 3 breakpoint keep y 0x0000562a43ba2610 in cli_ui_out::do_field_string(int, int, ui_align, char const*, char const*, ui_out_style_kind) at ../../smallthing/gdb/cli-out.c:174 breakpoint already hit 4 times (top-gdb) detach So, splits in the middle of filenames for the first 2 breakpoints, and does not split for the 3rd. > > thanks, > Tom > > diff --git a/gdb/ChangeLog b/gdb/ChangeLog > index 7be4360e62..0d1fcb79f1 100644 > --- a/gdb/ChangeLog > +++ b/gdb/ChangeLog > @@ -1,3 +1,7 @@ > +2018-12-30 Tom Tromey <tom@tromey.com> > + > + * utils.c (flush_wrap_buffer): Only flush gdb_stdout. > + > 2018-12-30 Tom Tromey <tom@tromey.com> > > * event-top.h (command_line_handler): Update. > diff --git a/gdb/utils.c b/gdb/utils.c > index 3a6f796f2b..753eb14280 100644 > --- a/gdb/utils.c > +++ b/gdb/utils.c > @@ -1589,7 +1589,7 @@ reinitialize_more_filter (void) > static void > flush_wrap_buffer (struct ui_file *stream) > { > - if (!wrap_buffer.empty ()) > + if (stream == gdb_stdout && !wrap_buffer.empty ()) > { > fputs_unfiltered (wrap_buffer.c_str (), stream); > wrap_buffer.clear ();
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
Philippe> For word wrapping, I could not make it split addresses anymore,
Philippe> but I still see differences with the 8.2 behaviour,
Philippe> where the new gdb git+patch still splits filenames or some values.
[...]
Ok, I think I finally found this. I have a patch that works for me.
I still have to write a test case.
I looked into writing a unit test, but that is pretty complicated given
the many conditions at the top of fputs_maybe_filtered. I suppose I'd
have to install a new top level interpreter to make it possible, among
other things. (It seems to me that maybe this should check some
property of the ui_file and not the interpreter, but that's a much
larger patch...)
Tom
On Sun, 2019-01-06 at 16:40 -0700, Tom Tromey wrote: > > > > > > "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes: > > Philippe> For word wrapping, I could not make it split addresses anymore, > Philippe> but I still see differences with the 8.2 behaviour, > Philippe> where the new gdb git+patch still splits filenames or some values. > [...] > > Ok, I think I finally found this. I have a patch that works for me. > I still have to write a test case. > > I looked into writing a unit test, but that is pretty complicated given > the many conditions at the top of fputs_maybe_filtered. I suppose I'd > have to install a new top level interpreter to make it possible, among > other things. (It seems to me that maybe this should check some > property of the ui_file and not the interpreter, but that's a much > larger patch...) > > Tom Thanks for the investigations. If you deem it useful, I can do some manual validation of the patch, waiting for the test case and/or unit test. Philippe
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
Philippe> Thanks for the investigations. If you deem it useful, I can do
Philippe> some manual validation of the patch, waiting for the test case and/or
Philippe> unit test.
It's in crude form on my github, branch submit/fix-pager.
Tom
On Mon, 2019-01-07 at 07:48 -0700, Tom Tromey wrote: > > > > > > "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes: > > Philippe> Thanks for the investigations. If you deem it useful, I can do > Philippe> some manual validation of the patch, waiting for the test case and/or > Philippe> unit test. > > It's in crude form on my github, branch submit/fix-pager. > > Tom Seems to work much better, but I still found 2 strange things: I debugged gdb with this gdb, did various commands, and then a bt full which was ok: (top-gdb) bt full #0 0x00007f0b1ff97660 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 No locals. #1 0x000055bd7edc2af1 in poll (__timeout=-1, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46 No locals. #2 gdb_wait_for_event (block=block@entry=1) at ../../binutils-gdb/gdb/event-loop.c:772 timeout = -1 file_ptr = <optimized out> num_found = 0 __PRETTY_FUNCTION__ = "int gdb_wait_for_event(int)" I changed the width to 40, and then there were a few lines and spaces before the #0 (I am not completely sure how to reproduce the below. You might need to quit or C-c a previous paged command. So maybe this is the same problem as the next one (maybe some data that stays in a buffer after a quit or C-c). (top-gdb) set width 40 (top-gdb) bt full #0 0x00007f0b1ff97660 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 No locals. #1 0x000055bd7edc2af1 in poll ( __timeout=-1, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46 No locals. #2 gdb_wait_for_event ( block=block@entry=1) ... Also, when doing q (to stop paging): ... #3 0x000055bd7edc2c54 in gdb_do_one_event () at ../../binutils-gdb/gdb/event-loop.c:347 number_of_sources = <optimized out> current = 3 event_source_head = 2 res = <optimized out> #4 0x000055bd7edc2de5 in gdb_do_one_event () <continue without paging--q at ../../binutils-gdb/gdb/common/cQuit (top-gdb) help List of classes of commands: aliases -- Aliases of other commands breakpoints -- Making program stop at certain points data -- Examining data ... We still have the ' at ../../binutils-gdb/gdb/common/cQuit' shown after the quit. It is shown in green, and then (top-gdb) and all what follows (the help command, and its output) is in green. The color goes back to normal as soon as a command produces some styled output (e.g. p $sp). Also, the msg at the end of each page also appears at different columns, e.g. ... #14 0x000055bd7edc37a9 in gdb_rl_callback_read_char_wrapper ( client_data=<optimized out>) at ../../binutils-gdb/gdb/event-top.c:192 gdb_expt = <optimized out> <continue without paging-- #15 0x000055bd7edc3d50 in stdin_event_handler (error=<optimized out>, client_data=0x55bd813aa840) at ../../binutils-gdb/gdb/event-top.c:511 ui = 0x55bd813aa840 ... exception_try_scope_instance = <optimized out> ex = <optimized out> #22 gdb_main (args=<optimized out>) at ../../binutils-gdb/gdb/main.c:1193 exception_try_scope_instance = {<continue without paging-- ... So, maybe something colored is still in a buffer, that is flushed at various moments ? Note that I also produced the above symptoms by playing with set height 8, and quitting or C-c at various 'continue msg'. Philippe
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
Philippe> I changed the width to 40, and then there were a few lines and spaces before the #0
Philippe> (I am not completely sure how to reproduce the below. You might need to quit or C-c
Philippe> a previous paged command. So maybe this is the same problem as the next one
Philippe> (maybe some data that stays in a buffer after a quit or C-c).
I think I've figured this out and I pushed a new patch to my WIP branch
to address it. Could you try it out? I still haven't written the test
case but hopefully this weekend.
Tom
On Sat, 2019-01-12 at 10:03 -0700, Tom Tromey wrote: > > > > > > "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes: > > Philippe> I changed the width to 40, and then there were a few lines and spaces before the #0 > Philippe> (I am not completely sure how to reproduce the below. You might need to quit or C-c > Philippe> a previous paged command. So maybe this is the same problem as the next one > Philippe> (maybe some data that stays in a buffer after a quit or C-c). > > I think I've figured this out and I pushed a new patch to my WIP branch > to address it. Could you try it out? I still haven't written the test > case but hopefully this weekend. I have tested the last version. Just two minor things found with the pager prompt: Using (this patched) gdb to debug itself: (top-gdb) show height Number of lines gdb thinks are in a page is 24. (top-gdb) show width Number of characters gdb thinks are in a line is 80. (top-gdb) Put a breakpoint in the style function: (top-gdb) break style In the inferior gdb, do (gdb) info breakpoints When the style breakpoint is encountered, do (top-gdb) bt full The 4th page prompt is not at the first column: ... #9 0x000055b36e50b6f1 in execute_command (p=<optimized out>, p@entry=0x55b36f6d4230 "info breakp", from_tty=1) at ../../gdb/gdb/top.c:630 without_whitespace = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffd285ad140 ""}, _M_string_length = 0, { --Type <RET> for more, q to quit, c to continue without paging-- For the same test, GDB 8.2 gives: #9 0x000055b36e50b6f1 in execute_command (p=<optimized out>, p@entry=0x55b36f6d4230 "info breakp", from_tty=1) at ../../gdb/gdb/top.c:630 without_whitespace = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffd285ad140 ""}, --Type <RET> for more, q to quit, c to continue without paging-- Note that this behaviour is not very easy to produce. You might be more (un-)lucky by using e.g. set height 3 and then do bt full, so as to have more page prompts. The second thing: ----------------- (top-gdb) set height 3 (top-gdb) info var some All variables matching regular expression "some": --Type <RET> for more, q to quit, c to continue without paging-- File ./complete.c: 344: rl_compignore_func_t *rl_ignore_some_completions_function; --Type <RET> for more, q to quit, c to continue without paging-- Non-debugging symbols: --Type <RET> for more, q to quit, c to continue without paging-- --Type <RET> for more, q to quit, c to continue without paging-- 0x000055b36e7bbc20 iterate_over_some_symtabs(char const*, char const*, compunit_symtab*, compunit_symtab*, gdb::function_view<bool (symtab*)>)::__PRETTY_FUNCTION__ (top-gdb) As you can see, we have 2 successive pager prompts, but no info in between. GDB 8.2 does not show such behaviour. Thanks Philippe
Another thing: (top-gdb) bt #0 0x00007f6a9f44c660 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 #1 0x0000562224a0fe51 in poll (__timeout=-1, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46 In the above, the 'at' in the first line is black, and the filename is green, as expected. When doing (top-gdb) set width 60 (top-gdb) bt #0 0x00007f6a9f44c660 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:84 #1 0x0000562224a0fe51 in poll (__timeout=-1, __nfds=<optimized out>, __fds=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46 then the 'at' becomes also green. Philippe On Sat, 2019-01-12 at 18:55 +0100, Philippe Waroquiers wrote: > On Sat, 2019-01-12 at 10:03 -0700, Tom Tromey wrote: > > > > > > > "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes: > > > > Philippe> I changed the width to 40, and then there were a few lines and spaces before the #0 > > Philippe> (I am not completely sure how to reproduce the below. You might need to quit or C-c > > Philippe> a previous paged command. So maybe this is the same problem as the next one > > Philippe> (maybe some data that stays in a buffer after a quit or C-c). > > > > I think I've figured this out and I pushed a new patch to my WIP branch > > to address it. Could you try it out? I still haven't written the test > > case but hopefully this weekend. > > I have tested the last version. > > Just two minor things found with the pager prompt: > > > Using (this patched) gdb to debug itself: > (top-gdb) show height > Number of lines gdb thinks are in a page is 24. > (top-gdb) show width > Number of characters gdb thinks are in a line is 80. > (top-gdb) > > Put a breakpoint in the style function: > (top-gdb) break style > > In the inferior gdb, do > (gdb) info breakpoints > > When the style breakpoint is encountered, do > (top-gdb) bt full > > The 4th page prompt is not at the first column: > ... > #9 0x000055b36e50b6f1 in execute_command (p=<optimized out>, > p@entry=0x55b36f6d4230 "info breakp", from_tty=1) > at ../../gdb/gdb/top.c:630 > without_whitespace = {static npos = 18446744073709551615, > _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No > data fields>}, <No data fields>}, _M_p = 0x7ffd285ad140 ""}, > _M_string_length = 0, { > --Type <RET> for more, q to quit, c to continue without paging-- > > > > For the same test, GDB 8.2 gives: > #9 0x000055b36e50b6f1 in execute_command (p=<optimized out>, > p@entry=0x55b36f6d4230 "info breakp", from_tty=1) > at ../../gdb/gdb/top.c:630 > without_whitespace = {static npos = 18446744073709551615, > _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No > data fields>}, <No data fields>}, _M_p = 0x7ffd285ad140 ""}, > --Type <RET> for more, q to quit, c to continue without paging-- > > > Note that this behaviour is not very easy to produce. You might be > more (un-)lucky by using e.g. > set height 3 > and then do bt full, > so as to have more page prompts. > > > > > The second thing: > ----------------- > > (top-gdb) set height 3 > (top-gdb) info var some > All variables matching regular expression "some": > > --Type <RET> for more, q to quit, c to continue without paging-- > File ./complete.c: > 344: rl_compignore_func_t *rl_ignore_some_completions_function; > --Type <RET> for more, q to quit, c to continue without paging-- > > Non-debugging symbols: > --Type <RET> for more, q to quit, c to continue without paging-- > --Type <RET> for more, q to quit, c to continue without paging-- > 0x000055b36e7bbc20 iterate_over_some_symtabs(char const*, char const*, compunit_symtab*, > compunit_symtab*, gdb::function_view<bool (symtab*)>)::__PRETTY_FUNCTION__ > (top-gdb) > > As you can see, we have 2 successive pager prompts, but no > info in between. > GDB 8.2 does not show such behaviour. > > Thanks > > Philippe >
>>>>> "Philippe" == Philippe Waroquiers <philippe.waroquiers@skynet.be> writes:
Philippe> When doing
Philippe> (top-gdb) set width 60
Philippe> (top-gdb) bt
Philippe> #0 0x00007f6a9f44c660 in __poll_nocancel ()
Philippe> at ../sysdeps/unix/syscall-template.S:84
Philippe> #1 0x0000562224a0fe51 in poll (__timeout=-1,
Philippe> __nfds=<optimized out>, __fds=<optimized out>)
Philippe> at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
Philippe> then the 'at' becomes also green.
I fixed this one on my branch. I haven't researched the other two
problems yet.
Tom
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7be4360e62..0d1fcb79f1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2018-12-30 Tom Tromey <tom@tromey.com> + + * utils.c (flush_wrap_buffer): Only flush gdb_stdout. + 2018-12-30 Tom Tromey <tom@tromey.com> * event-top.h (command_line_handler): Update. diff --git a/gdb/utils.c b/gdb/utils.c index 3a6f796f2b..753eb14280 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1589,7 +1589,7 @@ reinitialize_more_filter (void) static void flush_wrap_buffer (struct ui_file *stream) { - if (!wrap_buffer.empty ()) + if (stream == gdb_stdout && !wrap_buffer.empty ()) { fputs_unfiltered (wrap_buffer.c_str (), stream); wrap_buffer.clear ();