From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4583 invoked by alias); 7 May 2013 02:30:29 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 4536 invoked by uid 89); 7 May 2013 02:30:22 -0000 X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_PASS autolearn=ham version=3.3.1 Received: from mail-oa0-f42.google.com (HELO mail-oa0-f42.google.com) (209.85.219.42) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Tue, 07 May 2013 02:30:21 +0000 Received: by mail-oa0-f42.google.com with SMTP id i10so66445oag.29 for ; Mon, 06 May 2013 19:30:19 -0700 (PDT) X-Received: by 10.60.34.135 with SMTP id z7mr16189oei.68.1367893819312; Mon, 06 May 2013 19:30:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.60.13.133 with HTTP; Mon, 6 May 2013 19:29:39 -0700 (PDT) In-Reply-To: References: <87zjwuv0qn.fsf@fleche.redhat.com> <87li87ll0r.fsf@fleche.redhat.com> <87fvyd827o.fsf@fleche.redhat.com> From: Hui Zhu Date: Tue, 07 May 2013 02:30:00 -0000 Message-ID: Subject: Re: [PATCH] not trigger pagination with dprintf To: Doug Evans Cc: Tom Tromey , gdb-patches ml , Eli Zaretskii Content-Type: text/plain; charset=ISO-8859-1 X-SW-Source: 2013-05/txt/msg00161.txt.bz2 On Sat, May 4, 2013 at 12:41 PM, Doug Evans wrote: > On Mon, Apr 29, 2013 at 5:57 PM, Hui Zhu wrote: >> On Sat, Apr 27, 2013 at 4:30 AM, Tom Tromey wrote: >>> Hui> Because as the Marc said in bugzilla, when pagination is triggered, >>> Hui> inferior execution will be interrupted until the user answers the >>> Hui> pagination prompt. And dptintf breakpoint call printf in its >>> Hui> commands. So I want to make dprintf can handle it. >>> >>> If pagination from a breakpoint's commands really breaks gdb, then it >>> should be disabled universally while in "commands", not just for >>> dprintf. >>> >>> If it doesn't break gdb, well, then it seems like it is what the user >>> asked for. >> >> Hi Tom, >> >> I post a new patch that temporarily set pagination_enabled to 0 in the >> begin of commands execution function bpstat_do_actions to close >> pagination. >> Then all the commands of breakpoint will not trigger pagination. >> >> If you think this patch is OK, I will update patch for bug 15075 >> http://sourceware.org/ml/gdb-patches/2013-04/msg00711.html temporarily >> set pagination_enabled to 0 too. >> >> Thanks, >> Hui >> >> 2013-04-30 Hui Zhu >> >> PR gdb/15182 >> * breakpoint.c (bpstat_do_actions): Temporarily set >> pagination_enabled to 0. >> >> --- a/gdb/breakpoint.c >> +++ b/gdb/breakpoint.c >> @@ -4374,7 +4374,11 @@ void >> bpstat_do_actions (void) >> { >> struct cleanup *cleanup_if_error = make_bpstat_clear_actions_cleanup (); >> + struct cleanup *back_to; >> + extern int pagination_enabled; >> >> + back_to = make_cleanup_restore_integer (&pagination_enabled); >> + pagination_enabled = 0; >> /* Do any commands attached to breakpoint we are stopped at. */ >> while (!ptid_equal (inferior_ptid, null_ptid) >> && target_has_execution >> @@ -4387,6 +4391,7 @@ bpstat_do_actions (void) >> if (!bpstat_do_actions_1 (&inferior_thread ()->control.stop_bpstat)) >> break; >> >> + do_cleanups (back_to); >> discard_cleanups (cleanup_if_error); >> } > > *If* we go this route, then this will require a NEWS item and a doc > addition to the breakpoint commands section of the manual to tell > users this is happening (and a note saying that any change in > pagination done by breakpoint commands is reverted when the commands > end). > > But I wouldn't submit a revised patch until we decide this is what we > want to do. Hi Doug, Thanks for your remind. I post new patches include patch for doc. Thanks, Hui 2013-05-07 Hui Zhu PR gdb/15182 * breakpoint.c (bpstat_do_actions): Temporarily set pagination_enabled to 0. 2013-05-07 Hui Zhu PR gdb/15182 * gdb.texinfo (Breakpoint Command Lists): Add introduce about auto set pagination off. --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -4374,7 +4374,11 @@ void bpstat_do_actions (void) { struct cleanup *cleanup_if_error = make_bpstat_clear_actions_cleanup (); + struct cleanup *back_to; + extern int pagination_enabled; + back_to = make_cleanup_restore_integer (&pagination_enabled); + pagination_enabled = 0; /* Do any commands attached to breakpoint we are stopped at. */ while (!ptid_equal (inferior_ptid, null_ptid) && target_has_execution @@ -4387,6 +4391,7 @@ bpstat_do_actions (void) if (!bpstat_do_actions_1 (&inferior_thread ()->control.stop_bpstat)) break; + do_cleanups (back_to); discard_cleanups (cleanup_if_error); } --- a/gdb/NEWS +++ b/gdb/NEWS @@ -51,6 +51,9 @@ show remote trace-status-packet ** The -trace-save MI command can optionally save trace buffer in Common Trace Format now. +* When GDB executes the commands of any breakpoint, the GDB output + pagination will be auto set to off. + *** Changes in GDB 7.6 * Target record has been renamed to record-full. --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -4619,6 +4619,9 @@ commands to execute when your program st example, you might want to print the values of certain expressions, or enable other breakpoints. +When @value{GDBN} executes the commands of any breakpoint, +the @value{GDBN} output pagination will be auto set to off. + @table @code @kindex commands @kindex end@r{ (breakpoint commands)}