From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 CE0B43858CDA for ; Thu, 14 Sep 2023 13:00:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CE0B43858CDA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1694696441; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4Zpv5nl1QK5HEd2D5sZCF9RHqE/GcKMfBrHTjWiyyy4=; b=A6Nr2Et4gc/91Di7Op3Qc/HmnYXfTIx/shAFRDpJdMqdAYJALk2fLGQlVPBofEKdzz4ZTD +d8qP0tg72FCPBu1MwbTA+lrpz2bOwkFYcjAzeKCECEhzTaV1SZRnqkkLXxrAjTQdLp0Rl c4C76OJT5r6AJNYFtOfG3UCPzEWPrB8= Received: from mail-ej1-f70.google.com (mail-ej1-f70.google.com [209.85.218.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-176-eQQpIHWYPaaDswy8ty7njQ-1; Thu, 14 Sep 2023 09:00:39 -0400 X-MC-Unique: eQQpIHWYPaaDswy8ty7njQ-1 Received: by mail-ej1-f70.google.com with SMTP id a640c23a62f3a-99bebfada8cso72028366b.1 for ; Thu, 14 Sep 2023 06:00:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694696437; x=1695301237; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4Zpv5nl1QK5HEd2D5sZCF9RHqE/GcKMfBrHTjWiyyy4=; b=d1Q3J2HysHrEtNo0ao2HZ07WWt7HIvT8hvIo25KivyX1UD8DYjUAP5TEJDBfdcK64w xCANdPwDRv+UhaTEuSqp3s+xBrc/+OYT+iHgxhYQk2tBE7VDz4+v/KAwCTuqOv7oaSzN t0wCfpjR8BEuH9MEJ6dilXjepBP1aRpXS3RP3h3E/bE3CK363t93jlF/l9AYe+HHCGZx 5i7gTDDHn+T7C9eeIGWIPPDU7xGb363xHIJWFmC4fUprWtzF/ZSBLVvOqPV9TAJFt24J nwCCTAt5HmvKIXLlwYP/TQ0VaJAMiENgdOE9IaMKOPFD2r3Ctvy3fP9pAVGwjG3cAsmZ ADZg== X-Gm-Message-State: AOJu0YyNHlNAzQ9yRK58cjWzsVn4dHow0iRkEQJ5jopCvAmO29Lz2Q07 PpXqgNkkIhx4X1QwdqEPzAd0qAv2YhPyxw65wCsacELeMo3lI6lEEOz6rndygfwYEYk7ARfhrzt p/8pNtEqcx8/qS0m46yY8xV4m35+U2g== X-Received: by 2002:a17:906:32cf:b0:9a1:e231:67ec with SMTP id k15-20020a17090632cf00b009a1e23167ecmr4373139ejk.61.1694696437615; Thu, 14 Sep 2023 06:00:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE1S/CY7bwWj/PDysPejQjxYRM+IWSBRwZu211nXxGanFtVpb3bbxPxfwe0vXynqgmRpwpYXQ== X-Received: by 2002:a17:906:32cf:b0:9a1:e231:67ec with SMTP id k15-20020a17090632cf00b009a1e23167ecmr4373113ejk.61.1694696437118; Thu, 14 Sep 2023 06:00:37 -0700 (PDT) Received: from [10.43.2.16] (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id ck19-20020a170906c45300b0099297c99314sm980500ejb.113.2023.09.14.06.00.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Sep 2023 06:00:36 -0700 (PDT) Message-ID: <1050183a-03b3-d0bc-4402-63e9d19335af@redhat.com> Date: Thu, 14 Sep 2023 15:00:35 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: [PING][PATCH v3] gdb/cli: fixes to newly added "list ." command To: Guinevere Larsen , Bruno Larsen via Gdb-patches References: <20230721102655.3486091-2-blarsen@redhat.com> <20230828155039.120251-2-blarsen@redhat.com> From: Guinevere Larsen In-Reply-To: <20230828155039.120251-2-blarsen@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.0 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_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Ping! -- Cheers, Guinevere Larsen She/Her/Hers On 28/08/2023 17:50, Guinevere Larsen wrote: > After the series that added this command was pushed, Pedro mentioned > that the news description could easily be misinterpreted, as well as > some code and test improvements that should be made. > > While fixing the test, I realized that code repetition wasn't > happening as it should, so I took care of that too. > --- > Changes for v3: > * Changed documentation wording again, from "defualt location" to > "point of execution", seeing as it is already in the manual. > > Since I changed docs, I removed Eli's review tag. > > Changes for v2: > * reworded documentation and help text > > --- > gdb/NEWS | 5 +++-- > gdb/cli/cli-cmds.c | 18 +++++++++--------- > gdb/doc/gdb.texinfo | 5 ++--- > gdb/testsuite/gdb.base/list.exp | 24 +++++++++++++----------- > 4 files changed, 27 insertions(+), 25 deletions(-) > > diff --git a/gdb/NEWS b/gdb/NEWS > index c4b1f7a7e3b..f34bda60a88 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -90,8 +90,9 @@ > expression parser. > > * The 'list' command now accepts '.' as an argument, which tells GDB to > - print the location where the inferior is stopped. If the inferior hasn't > - started yet, the command will print around the main function. > + print the location around the point of execution within the current frame. > + If the inferior hasn't started yet, the command wil print around the > + beginning of the 'main' function. > > * Using the 'list' command with no arguments in a situation where the > command would attempt to list past the end of the file now warns the > diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c > index 0fa24fd3df9..6bf10c98c54 100644 > --- a/gdb/cli/cli-cmds.c > +++ b/gdb/cli/cli-cmds.c > @@ -1272,10 +1272,10 @@ list_command (const char *arg, int from_tty) > print_source_lines (cursal.symtab, range, 0); > } > > - /* "l ." lists the default location again. */ > + /* "list ." lists the default location again. */ > else if (arg[0] == '.') > { > - try > + if (target_has_stack ()) > { > /* Find the current line by getting the PC of the currently > selected frame, and finding the line associated to it. */ > @@ -1283,19 +1283,19 @@ list_command (const char *arg, int from_tty) > CORE_ADDR curr_pc = get_frame_pc (frame); > cursal = find_pc_line (curr_pc, 0); > } > - catch (const gdb_exception &e) > + else > { > - /* If there was an exception above, it means the inferior > - is not running, so reset the current source location to > - the default. */ > + /* The inferior is not running, so reset the current source > + location to the point of execution. */ > clear_current_source_symtab_and_line (); > set_default_source_symtab_and_line (); > cursal = get_current_source_symtab_and_line (); > } > list_around_line (arg, cursal); > - /* Advance argument so just pressing "enter" after using "list ." > + /* Set the repeat args so just pressing "enter" after using "list ." > will print the following lines instead of the same lines again. */ > - arg++; > + if (from_tty) > + set_repeat_arguments (""); > } > > return; > @@ -2805,9 +2805,9 @@ and send its output to SHELL_COMMAND.")); > = add_com ("list", class_files, list_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\ > +\"list .\" lists ten lines around the point of execution in the current frame.\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\ > Lines can be specified in these ways:\n\ > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > index 8be9725d1a2..784da709ea2 100644 > --- a/gdb/doc/gdb.texinfo > +++ b/gdb/doc/gdb.texinfo > @@ -9212,9 +9212,8 @@ Same as using with no arguments. > Print lines just before the lines last printed. > > @item list . > -Print the lines surrounding the location that is where the inferior > -is stopped. If the inferior is not running, print around the main > -function instead. > +Print the point of execution within the currently selected frame. > +If the inferior is not running, print around the main function instead. > @end table > > @cindex @code{list}, how many lines to display > diff --git a/gdb/testsuite/gdb.base/list.exp b/gdb/testsuite/gdb.base/list.exp > index 582355996b0..306fe41c3a3 100644 > --- a/gdb/testsuite/gdb.base/list.exp > +++ b/gdb/testsuite/gdb.base/list.exp > @@ -402,18 +402,15 @@ proc test_list_invalid_args {} { > > proc test_list_current_location {} { > global binfile > - # If the first "list" command that GDB runs is "list ." GDB may be > - # unable to recognize that the inferior isn't running, so we should > - # reload the inferior to test that condition. > - clean_restart > + # Reload the inferior to test "list ." before the inferior is started. > gdb_file_cmd ${binfile} > > - # Ensure that we are printing 10 lines > + # Ensure that we are printing 10 lines. > if {![set_listsize 10]} { > return > } > > - # First guarantee that GDB prints around the main function correctly > + # First guarantee that GDB prints around the main function correctly. > gdb_test "list ." \ > "1.*\r\n2\[ \t\]+\r\n3\[ \t\]+int main \[)(\]+.*5\[ \t\]+int x;.*" \ > "list . with inferior not running" > @@ -423,17 +420,22 @@ proc test_list_current_location {} { > return > } > > - # Walk forward some lines > + # Walk forward some lines. > gdb_test "until 15" ".*15.*foo.*" > > # Test that the correct location is printed and that > # using just "list" will print the following lines. > - gdb_test "list ." ".*" "list current line after starting" > - gdb_test "list" ".*" "confirm we are printing the following lines" > + gdb_test "list ." "10\[ \t\]+foo \(.*\);.*19\[ \t\]+foo \(.*\);" \ > + "list current line after starting" > + gdb_test "list" "20\[ \t\]+foo \(.*\);.*29\[ \t\]+foo \(.*\);" \ > + "confirm we are printing the following lines" > > # Test that list . will reset to current location > - gdb_test "list ." ".*" "list around current line again" > - gdb_test " " ".*" "testing repeated invocations with GDB's auto-repeat" > + # and that an empty line lists the following lines. > + gdb_test "list ." "10\[ \t\]+foo \(.*\);.*19\[ \t\]+foo \(.*\);" \ > + "list around current line again" > + gdb_test " " "20\[ \t\]+foo \(.*\);.*29\[ \t\]+foo \(.*\);" \ > + "testing repeated invocations with GDB's auto-repeat" > } > > clean_restart