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.129.124]) by sourceware.org (Postfix) with ESMTPS id F40393858C42 for ; Tue, 23 Apr 2024 13:33:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F40393858C42 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F40393858C42 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713879239; cv=none; b=esrsf7h8L6Ud44LGZvT29CpZYciicSdHcuRi+8trJ8oAtznTQu8AzzdoIe4xzoXCXzMskhtRh7w+kYkTsodEQky+HRn+2JuDBCXk2lQbvZ7tgcn3y2NYUyAXpcw/zJwGl1OeD+tkc1Dh9G0DcEmGd+VOeqCsiK5O3jT3LHIkfCc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713879239; c=relaxed/simple; bh=7utmVEgiW5Vl7O1P/6nR33Ub8wXeAi/eBUKiRr/IUvU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=mAJO67T0p3ZmH7ufMibjUVTapCE+IMy+SnVW1UnwmUiNP0uqcW0o7MHUVxzPcFuj4VsCFHUnPnBYI7qksoJU+1L8CWmp3Uj7ZbeB1OJjSakBSZuq8woHwjKigdvDUpMra3WpBUI0w2FflBehaIB9+ZlXt+gAUQeqdwRrnIPLMac= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713879228; 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=gHCF5F2BgaMrWKJT6Y6RnZdueX2G+LOY+WBToRzOqIk=; b=idq9PDP/F6NbwWW1SOQx9pEQT15kY6aJLsGKUXmsTN03ySY7H39zLq076ni3rcNqJ8tdUW qpBnikd/sAzT96PrahgCqSjO7d5cO5QK0winqUN71o+CtYzhBhMvnnijn52Z6CAey1oaOt xPYvTeEdExh4eOiJa031d72l3LmOcyI= Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-35-aKcGLZErOBejRq1LICOxvQ-1; Tue, 23 Apr 2024 09:33:46 -0400 X-MC-Unique: aKcGLZErOBejRq1LICOxvQ-1 Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-601fef07eaeso1585608a12.1 for ; Tue, 23 Apr 2024 06:33:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713879225; x=1714484025; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=gHCF5F2BgaMrWKJT6Y6RnZdueX2G+LOY+WBToRzOqIk=; b=AOsxO6FzzVYsg1l72CgQEZlsqwjrKaPdTUNoHLhie8zMBRFssoRMSgHdz9Xiwmixs4 2Bpef3MILAR4lCnFBpHvzoAFdQybEXYqVUJPGsnawUB9Gu6hZdZf3x3zhwF8dN6h5okn hu0+RA38ezHSl3c5/gNWLYxxSd3jrLbEyP3S+9VCLGgXl77LnC2fLKlTl3ZmRdqtzDog z3rbd/CUxeuIrIIb0rlVzc1loMb9bzHONc32XuFT37NcQPnQNEdyIQYwUXLknILlCA+C Iv6zCiAJV0EFXiW+FK/c59cwfDrca8TOGwqcqDlRzV0qC216y1X9g82Cu9P/6s9XQxjl V82Q== X-Forwarded-Encrypted: i=1; AJvYcCW+HdZZtVebx55qRA5kHoV5qJz45S0rpCteM7YaSTOaeecMyypuTKKOhEJTYx+m9U40BrrHTKtAls7GFmyjQMTVYQ4Ch2HHt27eDg== X-Gm-Message-State: AOJu0YxmGIGaUPJevyFqSk7O48tuHfpitxD0yMDCqBHMlQTv1sTuxd/h YQkNgjyPzex5IO948FEBa/CrdJS7Uj2M9QeicZCWQhZjDaPx5Dp4Jn70V/eIHtqufcws5GGenAU 1B4Julq2D39yjHwP+LYZqQ2UaAVlXWmhJkBylyVp9JpMk5tuVMLTE7ZiVApy2Ox8Pccg= X-Received: by 2002:a05:6a20:748e:b0:1ab:639c:ef65 with SMTP id p14-20020a056a20748e00b001ab639cef65mr19950327pzd.29.1713879225006; Tue, 23 Apr 2024 06:33:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFi5mneekp9NgegCeI3nIePz9RokWHLfKLD8c6U5ak4NTusJlGLNXddpcrlkCcYCL4+pT/OSA== X-Received: by 2002:a05:6a20:748e:b0:1ab:639c:ef65 with SMTP id p14-20020a056a20748e00b001ab639cef65mr19950294pzd.29.1713879224587; Tue, 23 Apr 2024 06:33:44 -0700 (PDT) Received: from ?IPV6:2804:14d:8084:92c5::1001? ([2804:14d:8084:92c5::1001]) by smtp.gmail.com with ESMTPSA id u11-20020a056a00124b00b006eab7ca005esm9928854pfi.18.2024.04.23.06.33.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 23 Apr 2024 06:33:44 -0700 (PDT) Message-ID: <735b60a6-e462-4717-8b32-3495b64adc83@redhat.com> Date: Tue, 23 Apr 2024 10:33:41 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] Change message when reaching end of reverse history. To: Alex Chronopoulos , gdb-patches@sourceware.org References: <20240414193653.3289837-1-achronop@gmail.com> From: Guinevere Larsen In-Reply-To: <20240414193653.3289837-1-achronop@gmail.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=-11.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_H4,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,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: On 4/14/24 16:36, Alex Chronopoulos wrote: > In a record session, when we move backward, GDB switches from normal > execution to simulation. Moving forward again, the emulation continues > until the end of the reverse history. When the end is reached, the > execution stops, and a warning message is shown. This message has been > modified to indicate that the forward emulation has reached the end, but > the execution can continue as normal, and the recording will also continue. > > Before this patch, the warning message shown in that case was the same as > in the reverse case. This meant that when the end of history was reached in > either backward or forward emulation, the same message was displayed: > > "No more reverse-execution history." > > This message remains for backward emulation. However, in forward emulation, > it has been modified to: > > "End of recorded history; following steps will be added to history." > > The reason for this change is that the initial message was deceiving, for > the forward case, making the user believe that forward debugging could not > continue. > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31224 Sorry about the delay in getting this review. I'm fine with this. Reviewed-By: Guinevere Larsen Hopefully Markus gives his OK soon. -- Cheers, Guinevere Larsen She/Her/Hers > --- > gdb/NEWS | 5 ++++ > gdb/infrun.c | 8 ++++- > gdb/testsuite/gdb.btrace/non-stop.exp | 30 ++++++++++++------- > gdb/testsuite/gdb.reverse/break-precsave.exp | 4 +-- > gdb/testsuite/gdb.reverse/break-reverse.exp | 2 +- > .../gdb.reverse/machinestate-precsave.exp | 2 +- > 6 files changed, 36 insertions(+), 15 deletions(-) > > diff --git a/gdb/NEWS b/gdb/NEWS > index 2638b3e0d9c..f2e85776a53 100644 > --- a/gdb/NEWS > +++ b/gdb/NEWS > @@ -13,6 +13,11 @@ > the background, resulting in faster startup. This can be controlled > using "maint set dwarf synchronous". > > +* In a record session, when a forward emulation reaches the end of the reverse > + history, the warning message has been changed to indicate that the end of the > + history has been reached. It also specifies that the forward execution can > + continue, and the recording will also continue. > + > * Changed commands > > disassemble > diff --git a/gdb/infrun.c b/gdb/infrun.c > index bbb98f6dcdb..c0f037c11a2 100644 > --- a/gdb/infrun.c > +++ b/gdb/infrun.c > @@ -9244,8 +9244,14 @@ print_no_history_reason (struct ui_out *uiout) > { > if (uiout->is_mi_like_p ()) > uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_NO_HISTORY)); > + else if (execution_direction == EXEC_FORWARD) > + uiout->text ("\nEnd of recorded history; following steps will be added to " > + "history.\n"); > else > - uiout->text ("\nNo more reverse-execution history.\n"); > + { > + gdb_assert (execution_direction == EXEC_REVERSE); > + uiout->text ("\nNo more reverse-execution history.\n"); > + } > } > > /* Print current location without a level number, if we have changed > diff --git a/gdb/testsuite/gdb.btrace/non-stop.exp b/gdb/testsuite/gdb.btrace/non-stop.exp > index 62c940e4cd6..a57cfec62be 100644 > --- a/gdb/testsuite/gdb.btrace/non-stop.exp > +++ b/gdb/testsuite/gdb.btrace/non-stop.exp > @@ -79,7 +79,7 @@ proc gdb_cont_to_bp_line { line threads nthreads } { > $nthreads > } > > -proc gdb_cont_to_no_history { threads cmd nthreads } { > +proc gdb_cont_to_no_history_backward { threads cmd nthreads } { > gdb_cont_to $threads $cmd \ > [multi_line \ > "No more reverse-execution history\." \ > @@ -89,6 +89,16 @@ proc gdb_cont_to_no_history { threads cmd nthreads } { > $nthreads > } > > +proc gdb_cont_to_no_history_forward { threads cmd nthreads } { > + gdb_cont_to $threads $cmd \ > + [multi_line \ > + "End of recorded history; following steps will be added to history\." \ > + "\[^\\\r\\\n\]*" \ > + "\[^\\\r\\\n\]*" \ > + ] \ > + $nthreads > +} > + > # trace the code between the two breakpoints > with_test_prefix "prepare" { > gdb_cont_to_bp_line "$srcfile:$bp_1" all 2 > @@ -176,14 +186,14 @@ with_test_prefix "reverse-step" { > with_test_prefix "continue" { > with_test_prefix "thread 1" { > with_test_prefix "continue" { > - gdb_cont_to_no_history 1 "continue" 1 > + gdb_cont_to_no_history_forward 1 "continue" 1 > gdb_test "thread apply 1 info record" \ > ".*Recorded \[0-9\]+ instructions \[^\\\r\\\n\]*" > gdb_test "thread apply 2 info record" \ > ".*Replay in progress\. At instruction 5\." > } > with_test_prefix "reverse-continue" { > - gdb_cont_to_no_history 1 "reverse-continue" 1 > + gdb_cont_to_no_history_backward 1 "reverse-continue" 1 > gdb_test "thread apply 1 info record" \ > ".*Replay in progress\. At instruction 1\." > gdb_test "thread apply 2 info record" \ > @@ -193,14 +203,14 @@ with_test_prefix "continue" { > > with_test_prefix "thread 2" { > with_test_prefix "continue" { > - gdb_cont_to_no_history 2 "continue" 1 > + gdb_cont_to_no_history_forward 2 "continue" 1 > gdb_test "thread apply 1 info record" \ > ".*Replay in progress\. At instruction 1\." > gdb_test "thread apply 2 info record" \ > ".*Recorded \[0-9\]+ instructions \[^\\\r\\\n\]*" > } > with_test_prefix "reverse-continue" { > - gdb_cont_to_no_history 2 "reverse-continue" 1 > + gdb_cont_to_no_history_backward 2 "reverse-continue" 1 > gdb_test "thread apply 1 info record" \ > ".*Replay in progress\. At instruction 1\." > gdb_test "thread apply 2 info record" \ > @@ -215,8 +225,8 @@ with_test_prefix "no progress" { > gdb_test "thread apply 1 record goto end" ".*" > gdb_test "thread apply 2 record goto begin" ".*" > > - gdb_cont_to_no_history 1 "continue" 1 > - gdb_cont_to_no_history 1 "step" 1 > + gdb_cont_to_no_history_forward 1 "continue" 1 > + gdb_cont_to_no_history_forward 1 "step" 1 > gdb_test "thread apply 1 info record" \ > ".*Recorded \[0-9\]+ instructions \[^\\\r\\\n\]*" > gdb_test "thread apply 2 info record" \ > @@ -227,8 +237,8 @@ with_test_prefix "no progress" { > gdb_test "thread apply 1 record goto begin" ".*" > gdb_test "thread apply 2 record goto end" ".*" > > - gdb_cont_to_no_history 2 "continue" 1 > - gdb_cont_to_no_history 2 "step" 1 > + gdb_cont_to_no_history_forward 2 "continue" 1 > + gdb_cont_to_no_history_forward 2 "step" 1 > gdb_test "thread apply 1 info record" \ > ".*Replay in progress\. At instruction 1\." > gdb_test "thread apply 2 info record" \ > @@ -238,7 +248,7 @@ with_test_prefix "no progress" { > with_test_prefix "all" { > gdb_test "thread apply all record goto begin" ".*" > > - gdb_cont_to_no_history all "continue" 2 > + gdb_cont_to_no_history_forward all "continue" 2 > gdb_test "thread apply 1 info record" \ > ".*Recorded \[0-9\]+ instructions \[^\\\r\\\n\]*" > gdb_test "thread apply 2 info record" \ > diff --git a/gdb/testsuite/gdb.reverse/break-precsave.exp b/gdb/testsuite/gdb.reverse/break-precsave.exp > index b9d94681247..dc7666e2f1a 100644 > --- a/gdb/testsuite/gdb.reverse/break-precsave.exp > +++ b/gdb/testsuite/gdb.reverse/break-precsave.exp > @@ -73,7 +73,7 @@ proc precsave_tests {} { > -re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" { > pass "go to end of main forward" > } > - -re "No more reverse-execution history.* end of main .*$gdb_prompt $" { > + -re -wrap "End of recorded history; following steps.* end of main .*" { > pass "go to end of main forward" > } > } > @@ -103,7 +103,7 @@ proc precsave_tests {} { > -re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" { > pass "end of record log" > } > - -re "No more reverse-execution history.* end of main .*$gdb_prompt $" { > + -re -wrap "End of recorded history; following steps.* end of main .*" { > pass "end of record log" > } > } > diff --git a/gdb/testsuite/gdb.reverse/break-reverse.exp b/gdb/testsuite/gdb.reverse/break-reverse.exp > index 1dd327ca654..28edddf3517 100644 > --- a/gdb/testsuite/gdb.reverse/break-reverse.exp > +++ b/gdb/testsuite/gdb.reverse/break-reverse.exp > @@ -80,7 +80,7 @@ gdb_test_multiple "continue" "end of record log" { > -re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" { > pass "end of record log" > } > - -re "No more reverse-execution history.* end of main .*$gdb_prompt $" { > + -re -wrap "End of recorded history; following steps will.* end of main .*" { > pass "end of record log" > } > } > diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp > index 19c5934bfdf..3d004cf3fee 100644 > --- a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp > +++ b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp > @@ -85,7 +85,7 @@ gdb_test_multiple "continue" "go to end of main forward" { > -re ".*Breakpoint $decimal,.*$srcfile:$endmain.*$gdb_prompt $" { > pass "go to end of main forward" > } > - -re "No more reverse-execution history.* end main .*$gdb_prompt $" { > + -re -wrap "End of recorded history; following steps will be.* end main .*" { > pass "go to end of main forward" > } > }