aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/NEWS5
-rw-r--r--gdb/infrun.c9
-rw-r--r--gdb/testsuite/gdb.btrace/multi-thread-step.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/nohist.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/non-stop.exp32
-rw-r--r--gdb/testsuite/gdb.btrace/stepi.exp14
-rw-r--r--gdb/testsuite/gdb.reverse/break-precsave.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/break-reverse.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse.exp6
12 files changed, 57 insertions, 33 deletions
diff --git a/gdb/NEWS b/gdb/NEWS
index 81aa8af..6bded31 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -35,6 +35,11 @@
* Remove support (native and remote) for QNX Neutrino (triplet
`i[3456]86-*-nto*`).
+* 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.
+
*** Changes in GDB 15
* The MPX commands "show/set mpx bound" have been deprecated, as Intel
diff --git a/gdb/infrun.c b/gdb/infrun.c
index f2d28ca..4ca1545 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -9267,8 +9267,15 @@ 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 ("\nReached end of recorded history; stopping.\nFollowing "
+ "forward execution will be added to history.\n");
else
- uiout->text ("\nNo more reverse-execution history.\n");
+ {
+ gdb_assert (execution_direction == EXEC_REVERSE);
+ uiout->text ("\nReached end of recorded history; stopping.\nBackward "
+ "execution from here not possible.\n");
+ }
}
/* Print current location without a level number, if we have changed
diff --git a/gdb/testsuite/gdb.btrace/multi-thread-step.exp b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
index 154db9a..cd20e8a 100644
--- a/gdb/testsuite/gdb.btrace/multi-thread-step.exp
+++ b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
@@ -111,14 +111,14 @@ proc test_cont {} {
with_test_prefix "cont" {
gdb_test "thread 1" ".*"
with_test_prefix "thread 1" {
- gdb_test "continue" "No more reverse-execution history.*"
+ gdb_test "continue" "Reached end of recorded history.*"
check_not_replaying 1
check_replay_insn 2 2
}
gdb_test "thread 2" ".*"
with_test_prefix "thread 2" {
- gdb_test "continue" "No more reverse-execution history.*"
+ gdb_test "continue" "Reached end of recorded history.*"
check_not_replaying 1
check_not_replaying 2
@@ -128,7 +128,7 @@ proc test_cont {} {
proc test_cont_all {} {
with_test_prefix "cont-all" {
- gdb_test "continue" "No more reverse-execution history.*"
+ gdb_test "continue" "Reached end of recorded history.*"
# this works because we're lock-stepping threads that executed exactly
# the same code starting from the same instruction.
diff --git a/gdb/testsuite/gdb.btrace/nohist.exp b/gdb/testsuite/gdb.btrace/nohist.exp
index d719091..ac6a41c 100644
--- a/gdb/testsuite/gdb.btrace/nohist.exp
+++ b/gdb/testsuite/gdb.btrace/nohist.exp
@@ -42,7 +42,7 @@ with_test_prefix "forward" {
check_not_replaying
}
-gdb_test "reverse-continue" "No more reverse-execution history\.\r\n.*"
+gdb_test "reverse-continue" "Reached end of recorded history; stopping.*"
with_test_prefix "backward" {
check_not_replaying
diff --git a/gdb/testsuite/gdb.btrace/non-stop.exp b/gdb/testsuite/gdb.btrace/non-stop.exp
index 62c940e..5e43545 100644
--- a/gdb/testsuite/gdb.btrace/non-stop.exp
+++ b/gdb/testsuite/gdb.btrace/non-stop.exp
@@ -79,16 +79,26 @@ 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\." \
+ "Reached end of recorded.*Backward execution.*" \
"\[^\\\r\\\n\]*" \
"\[^\\\r\\\n\]*" \
] \
$nthreads
}
+proc gdb_cont_to_no_history_forward { threads cmd nthreads } {
+ gdb_cont_to $threads $cmd \
+ [multi_line \
+ "Reached end of recorded.*Following forward.*" \
+ "\[^\\\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.btrace/stepi.exp b/gdb/testsuite/gdb.btrace/stepi.exp
index a70a5ad..689bc79 100644
--- a/gdb/testsuite/gdb.btrace/stepi.exp
+++ b/gdb/testsuite/gdb.btrace/stepi.exp
@@ -100,7 +100,7 @@ with_test_prefix "reverse-nexti.1" {
# we can't reverse-nexti any further
with_test_prefix "reverse-nexti.2" {
gdb_test "reverse-nexti" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-nexti.2"
check_replay_at 1
}
@@ -140,20 +140,20 @@ with_test_prefix "goto begin" {
with_test_prefix "reverse-stepi" {
gdb_test "reverse-stepi" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-stepi.1"
gdb_test "reverse-stepi" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-stepi.2"
check_replay_at 1
}
with_test_prefix "reverse-nexti" {
gdb_test "reverse-nexti" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-nexti.1"
gdb_test "reverse-nexti" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-nexti.2"
check_replay_at 1
}
@@ -169,10 +169,10 @@ with_test_prefix "goto begin" {
with_test_prefix "reverse-stepi" {
gdb_test "reverse-stepi" ".*main\.2.*" "reverse-stepi.1"
gdb_test "reverse-stepi" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-stepi.2"
gdb_test "reverse-stepi" \
- "No more reverse-execution history\.\r\n.*main\.2.*" \
+ "Reached end of recorded history; stopping\.\r\n.*main\.2.*" \
"reverse-stepi.3"
check_replay_at 1
}
diff --git a/gdb/testsuite/gdb.reverse/break-precsave.exp b/gdb/testsuite/gdb.reverse/break-precsave.exp
index b9d9468..6d9b312 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 "Reached end of recorded.*Following forward.* end of main .*" {
pass "go to end of main forward"
}
}
@@ -87,7 +87,7 @@ proc precsave_tests {} {
-re ".*Breakpoint $decimal,.*$srcfile:$main_location.*$gdb_prompt $" {
pass "main backward"
}
- -re "No more reverse-execution history.* break in main .*$gdb_prompt $" {
+ -re -wrap "Reached end of recorded.*Backward execution.* break in main .*" {
pass "main backward"
}
}
@@ -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 "Reached end of recorded.*Following forward.* 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 1dd327c..66e9712 100644
--- a/gdb/testsuite/gdb.reverse/break-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/break-reverse.exp
@@ -64,7 +64,7 @@ gdb_test_multiple "continue" "main backward" {
-re ".*Breakpoint $decimal,.*$srcfile:$main_location.*$gdb_prompt $" {
pass "main backward"
}
- -re "No more reverse-execution history.* break in main .*$gdb_prompt $" {
+ -re -wrap "Reached end of recorded history.*Backward execution.*" {
pass "main backward"
}
}
@@ -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 "Reached end of recorded history.*Following forward.*" {
pass "end of record log"
}
}
diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
index 19c5934..cedca0f 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 "Reached end of recorded history.*Following forward.*" {
pass "go to end of main forward"
}
}
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index e5890ad..aab4551 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -128,7 +128,7 @@ proc test_one_sig_reverse {prevsig} {
xfail "$testmsg (handled)"
}
}
- -re "No more reverse-execution history.*kill.*$gdb_prompt " {
+ -re "Reached end of recorded history.*Backward execution.*kill.*$gdb_prompt " {
if {$saw_signal} {
pass "$testmsg (handled)"
} else {
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
index f2cf55b..884b178 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -134,7 +134,7 @@ proc test_one_sig_reverse {prevsig} {
xfail "$testmsg (handled)"
}
}
- -re "No more reverse-execution history.*kill.*$gdb_prompt " {
+ -re "Reached end of recorded.*Backward execution.*kill.*$gdb_prompt " {
if {$saw_signal} {
pass "$testmsg (handled)"
} else {
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
index 971d88b..7392356 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
@@ -50,11 +50,13 @@ gdb_test "next" {nodebug \(\);} "next to nodebug"
gdb_test "next" {v = 3;} "next to v = 3"
# FAIL was:
-# No more reverse-execution history.
+# Reached end of recorded history; stopping.
+# Backward execution from here not possible.
# {
gdb_test "reverse-step" {nodebug \(\);}
# FAIL was:
-# No more reverse-execution history.
+# Reached end of recorded history; stopping.
+# Backward execution from here not possible.
# {
gdb_test "reverse-next" {f \(\);}