From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 121558 invoked by alias); 24 Mar 2018 06:31:58 -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 121066 invoked by uid 89); 24 Mar 2018 06:31:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.8 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=H*r:2001, H*r:sk:RSA_AES X-HELO: eggs.gnu.org Received: from eggs.gnu.org (HELO eggs.gnu.org) (208.118.235.92) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 24 Mar 2018 06:31:55 +0000 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ezciT-0003qF-SW for gdb-patches@sourceware.org; Sat, 24 Mar 2018 02:31:53 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:47001) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ezciT-0003q0-P8; Sat, 24 Mar 2018 02:31:49 -0400 Received: from [176.228.60.248] (port=3520 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ezciS-0000aQ-Vc; Sat, 24 Mar 2018 02:31:49 -0400 Date: Sat, 24 Mar 2018 06:31:00 -0000 Message-Id: <83tvt6gf1j.fsf@gnu.org> From: Eli Zaretskii To: Tom Tromey CC: gdb-patches@sourceware.org In-reply-to: <20180323205512.14434-2-tom@tromey.com> (message from Tom Tromey on Fri, 23 Mar 2018 14:55:00 -0600) Subject: Re: [RFA v3 01/13] Rationalize "backtrace" command line parsing Reply-to: Eli Zaretskii References: <20180323205512.14434-1-tom@tromey.com> <20180323205512.14434-2-tom@tromey.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00477.txt.bz2 > From: Tom Tromey > Cc: Tom Tromey > Date: Fri, 23 Mar 2018 14:55:00 -0600 > > The backtrace command has peculiar command-line parsing. In > particular, it splits the command line, then loops over the arguments. > If it sees a word it recognizes, like "full", it effectively drops > this word from the argument vector. Then, it pastes together the > remaining arguments, passing them on to backtrace_command_1, which in > turn passes the resulting string to parse_and_eval_long. > > The documentation doesn't mention the parse_and_eval_long at all, so > it is a bit of a hidden feature that you can "bt 3*2". The strange > algorithm above also means you can "bt 3 * no-filters 2" and get 6 > frames... > > This patch changes backtrace's command line parsing to be a bit more > rational. Now, special words like "full" are only recognized at the > start of the command. > > This also updates the documentation to describe the various bt options > individually. > > gdb/ChangeLog > 2018-03-23 Tom Tromey > > * stack.c (backtrace_command): Rewrite command line parsing. > > gdb/doc/ChangeLog > 2018-03-23 Tom Tromey > > * gdb.texinfo (Backtrace): Describe options individually. > --- > gdb/ChangeLog | 4 ++++ > gdb/doc/ChangeLog | 4 ++++ > gdb/doc/gdb.texinfo | 54 ++++++++++++++++++++-------------------------- > gdb/stack.c | 62 +++++++++++++++++------------------------------------ > 4 files changed, 51 insertions(+), 73 deletions(-) > > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 74e0fdb4a4..b48dd4ed4b 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -7307,39 +7307,31 @@ frame (frame zero), followed by its caller (frame one), and on up the > stack. > > @anchor{backtrace-command} > -@table @code > @kindex backtrace > @kindex bt @r{(@code{backtrace})} > -@item backtrace > -@itemx bt > -Print a backtrace of the entire stack: one line per frame for all > -frames in the stack. > - > -You can stop the backtrace at any time by typing the system interrupt > -character, normally @kbd{Ctrl-c}. > - > -@item backtrace @var{n} > -@itemx bt @var{n} > -Similar, but print only the innermost @var{n} frames. > - > -@item backtrace -@var{n} > -@itemx bt -@var{n} > -Similar, but print only the outermost @var{n} frames. > - > -@item backtrace full > -@itemx bt full > -@itemx bt full @var{n} > -@itemx bt full -@var{n} > -Print the values of the local variables also. As described above, > -@var{n} specifies the number of frames to print. > - > -@item backtrace no-filters > -@itemx bt no-filters > -@itemx bt no-filters @var{n} > -@itemx bt no-filters -@var{n} > -@itemx bt no-filters full > -@itemx bt no-filters full @var{n} > -@itemx bt no-filters full -@var{n} Is it wise to delete the @table? We always describe commands in that format, AFAIR. > +Print a backtrace of the entire stack, use the @code{backtrace} > +command, or its alias @code{bt}. This command will print one line per I gues you meant "To print a backtrace of the entire stack ...", because otherwise the first sentence reads weirdly. Otherwise, the documentation part is OK. Thanks.