Message ID | 20230713102411.2279542-5-blarsen@redhat.com |
---|---|
State | New |
Headers |
Return-Path: <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B7DF23854831 for <patchwork@sourceware.org>; Thu, 13 Jul 2023 10:25:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B7DF23854831 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1689243944; bh=uqjLjFwBHsQEzsz5J8OrcDQHV+ev+Az95yp3gIPS840=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=H3kojM3iRlxRENyPMuDOSceQ0rrWNnAzBS/VqS5jo72g3oiEd6ej1sj0VkjprHxPG eFSQPpfzdJTs74iSJ/Lgdn2jwopUi7hwcndHFuIMBkFSRVldRR6CRb4KLw0ok92m4L 7KPZfh84GI/lz/nHzOZDUwCXo8FiPP2MZAYHeKOc= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 86489385AFBC for <gdb-patches@sourceware.org>; Thu, 13 Jul 2023 10:24:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 86489385AFBC Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-14-TSSLZRRXO-SO1mYGl-mQVA-1; Thu, 13 Jul 2023 06:24:25 -0400 X-MC-Unique: TSSLZRRXO-SO1mYGl-mQVA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5D0438564EF; Thu, 13 Jul 2023 10:24:25 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.45.226.146]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BDA6740C206F; Thu, 13 Jul 2023 10:24:24 +0000 (UTC) To: gdb-patches@sourceware.org Cc: Bruno Larsen <blarsen@redhat.com>, Eli Zaretskii <eliz@gnu.org> Subject: [PATCH v4 4/4] gdb/doc: document '+' argument for 'list' command Date: Thu, 13 Jul 2023 12:24:11 +0200 Message-ID: <20230713102411.2279542-5-blarsen@redhat.com> In-Reply-To: <20230713102411.2279542-1-blarsen@redhat.com> References: <20230713102411.2279542-1-blarsen@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list <gdb-patches.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/gdb-patches>, <mailto:gdb-patches-request@sourceware.org?subject=subscribe> From: Bruno Larsen via Gdb-patches <gdb-patches@sourceware.org> Reply-To: Bruno Larsen <blarsen@redhat.com> Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" <gdb-patches-bounces+patchwork=sourceware.org@sourceware.org> |
Series |
Small changes to "list" command
|
|
Commit Message
Guinevere Larsen
July 13, 2023, 10:24 a.m. UTC
The command 'list' has accepted the argument '+' for many years already,
but this option wasn't documented either in the texinfo docs or in the
help text for the command. This commit documents it.
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
---
gdb/cli/cli-cmds.c | 1 +
gdb/doc/gdb.texinfo | 3 +++
2 files changed, 4 insertions(+)
Comments
On 7/13/23 03:24, Bruno Larsen via Gdb-patches wrote: > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 20c9b24400d..cd86da50f46 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -9148,6 +9148,9 @@ Stack}), this prints lines centered around that line. If no > @code{list} command has been used and no solitary line was printed, > it prints the lines around the function @code{main}. > > +@item list + > +Same as using with no arguments. > + > @item list - > Print lines just before the lines last printed. > Grepping gdb.texinfo for "list +" definitely has a result: $ grep 'list +' gdb.texinfo @item list + list +[NSText initialize] This is from the same "Printing Source Line" section of the Manual that your patch touches. This is the blurb which gives a "complete description of the possible arguments for list". What your patch does is actually add "list +" to the "most commonly used" blurb at the top of the section. I'm not sure I really find that compelling, given that it is essentially synonymous with just repeating/hitting enter, documented just above it. To be clear, I am not entirely against it. I'll leave it to the documentation experts. [And I see we have a near mid-air collision with an Approved-by. So ignore me!] Keith
On Thu, Jul 13, 2023 at 5:36 PM Keith Seitz via Gdb-patches <gdb-patches@sourceware.org> wrote: > > On 7/13/23 03:24, Bruno Larsen via Gdb-patches wrote: > > > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > > index 20c9b24400d..cd86da50f46 100644 > > --- a/gdb/doc/gdb.texinfo > > +++ b/gdb/doc/gdb.texinfo > > @@ -9148,6 +9148,9 @@ Stack}), this prints lines centered around that line. If no > > @code{list} command has been used and no solitary line was printed, > > it prints the lines around the function @code{main}. > > > > +@item list + > > +Same as using with no arguments. > > + > > @item list - > > Print lines just before the lines last printed. > > > > Grepping gdb.texinfo for "list +" definitely has a result: > > $ grep 'list +' gdb.texinfo > @item list + > list +[NSText initialize] > > This is from the same "Printing Source Line" section of the Manual > that your patch touches. This is the blurb which gives a "complete > description of the possible arguments for list". I guess it is worth noting that this usage of 'list +[NSText initialize]', is completely different than the first match '@item list +' Keith refers to, it comes from the objective-c section and in that case the '+' signifies that the initialize method is a class method. That one comes from the section "Method Names in Commands", an awkward bit of ambiguity. But it took me a bit to figure out what you were actually referring to, not seeing the NSText match in that section. > What your patch does is actually add "list +" to the "most commonly used" > blurb at the top of the section. > > I'm not sure I really find that compelling, given that it is essentially > synonymous with just repeating/hitting enter, documented just above it. > To be clear, I am not entirely against it. I'll leave it to the documentation > experts. > > [And I see we have a near mid-air collision with an Approved-by. So ignore me!] > > Keith >
On 13/07/2023 23:30, Matt Rice wrote: > On Thu, Jul 13, 2023 at 5:36 PM Keith Seitz via Gdb-patches > <gdb-patches@sourceware.org> wrote: >> On 7/13/23 03:24, Bruno Larsen via Gdb-patches wrote: >> >>> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo >>> index 20c9b24400d..cd86da50f46 100644 >>> --- a/gdb/doc/gdb.texinfo >>> +++ b/gdb/doc/gdb.texinfo >>> @@ -9148,6 +9148,9 @@ Stack}), this prints lines centered around that line. If no >>> @code{list} command has been used and no solitary line was printed, >>> it prints the lines around the function @code{main}. >>> >>> +@item list + >>> +Same as using with no arguments. >>> + >>> @item list - >>> Print lines just before the lines last printed. >>> >> Grepping gdb.texinfo for "list +" definitely has a result: >> >> $ grep 'list +' gdb.texinfo >> @item list + >> list +[NSText initialize] >> >> This is from the same "Printing Source Line" section of the Manual >> that your patch touches. This is the blurb which gives a "complete >> description of the possible arguments for list". > I guess it is worth noting that this usage of 'list +[NSText > initialize]', is completely different than the first match '@item list > +' Keith refers to, > it comes from the objective-c section and in that case the '+' > signifies that the initialize method is a class method. > That one comes from the section "Method Names in Commands", an awkward > bit of ambiguity. But it took me a bit to figure out what you > were actually referring to, not seeing the NSText match in that section. Yeah, it does sound like some unfortunate bit of ambiguity. I'm sure that "list +" is different to "list +[NSText initialize]" because the code has a special case for "arg[0] == '+' && arg[1] == '\0'", so it has to be a different case. Would be nice if we could change this to a less ambiguous option, as future work... > >> What your patch does is actually add "list +" to the "most commonly used" >> blurb at the top of the section. >> >> I'm not sure I really find that compelling, given that it is essentially >> synonymous with just repeating/hitting enter, documented just above it. >> To be clear, I am not entirely against it. I'll leave it to the documentation >> experts. My reasoning to document it is that all options should be in the documentation. If this option is redundant, I think it is a code issue, not a documentation issue.
>>>>> "Bruno" == Bruno Larsen via Gdb-patches <gdb-patches@sourceware.org> writes:
Bruno> Yeah, it does sound like some unfortunate bit of ambiguity. I'm sure
Bruno> that "list +" is different to "list +[NSText initialize]" because the
Bruno> code has a special case for "arg[0] == '+' && arg[1] == '\0'", so it
Bruno> has to be a different case.
Bruno> Would be nice if we could change this to a less ambiguous option, as
Bruno> future work...
I wonder if the ObjC code even works. Most of the test cases can't even
be compiled, and no one has maintained it in many years -- I think since
before I worked on gdb.
Tom
On Fri, Jul 14, 2023 at 4:30 PM Tom Tromey <tom@tromey.com> wrote: > > >>>>> "Bruno" == Bruno Larsen via Gdb-patches <gdb-patches@sourceware.org> writes: > > Bruno> Yeah, it does sound like some unfortunate bit of ambiguity. I'm sure > Bruno> that "list +" is different to "list +[NSText initialize]" because the > Bruno> code has a special case for "arg[0] == '+' && arg[1] == '\0'", so it > Bruno> has to be a different case. > > Bruno> Would be nice if we could change this to a less ambiguous option, as > Bruno> future work... > > I wonder if the ObjC code even works. Most of the test cases can't even > be compiled, and no one has maintained it in many years -- I think since > before I worked on gdb. > Yeah most of the test cases rely upon stuff which the gcc objc runtime removed and released before I noticed and could object to their removal (stuff like removing the Object class following suit from apples removal of the same things). At the time I had been working on fixing up and expanding the tests... A good way forward might be to re-add them to gcc in a separate new library That might make it possible to get it working with some past and future gcc versions. Without that gdb would have to build it's own runtime for the testsuite, or rely upon a 3rd party root object in order to test things like allocating objects, so we can invoke instance methods... I neither had enough interest, nor thought it was a good idea for either gdb to maintain such a thing or alternately rely upon a external library just for testing... Because without objects to actually instantiate gdb is pretty limited in what it can test, and the code for allocating objects from the runtime is quite runtime dependent. As such I wouldn't be surprised if it were completely broken either.
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c index 5f5933e7963..418b04212eb 100644 --- a/gdb/cli/cli-cmds.c +++ b/gdb/cli/cli-cmds.c @@ -2806,6 +2806,7 @@ and send its output to SHELL_COMMAND.")); List specified function or line.\n\ With no argument, lists ten more lines after or around previous listing.\n\ \"list .\" lists ten lines arond where the inferior is stopped.\n\ +\"list +\" lists the ten lines following a previous ten-line listing.\n\ \"list -\" lists the ten lines before a previous ten-line listing.\n\ One argument specifies a line, and ten lines are listed around that line.\n\ Two arguments with comma between specify starting and ending lines to list.\n\ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 20c9b24400d..cd86da50f46 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -9148,6 +9148,9 @@ Stack}), this prints lines centered around that line. If no @code{list} command has been used and no solitary line was printed, it prints the lines around the function @code{main}. +@item list + +Same as using with no arguments. + @item list - Print lines just before the lines last printed.