aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/gdb.reverse/shr2.c3
-rw-r--r--gdb/testsuite/gdb.reverse/solib-precsave.exp24
-rw-r--r--gdb/testsuite/gdb.reverse/solib-reverse.c5
-rw-r--r--gdb/testsuite/gdb.reverse/solib-reverse.exp24
-rw-r--r--gdb/testsuite/lib/gdb.exp6
5 files changed, 48 insertions, 14 deletions
diff --git a/gdb/testsuite/gdb.reverse/shr2.c b/gdb/testsuite/gdb.reverse/shr2.c
index 84a03de..16c3bf3 100644
--- a/gdb/testsuite/gdb.reverse/shr2.c
+++ b/gdb/testsuite/gdb.reverse/shr2.c
@@ -19,7 +19,8 @@
int shr2(int x)
{
- return 2*x;
+ int y = 2*x;
+ return y;
}
int shr2_local(int x)
diff --git a/gdb/testsuite/gdb.reverse/solib-precsave.exp b/gdb/testsuite/gdb.reverse/solib-precsave.exp
index 3ca7382..f899692 100644
--- a/gdb/testsuite/gdb.reverse/solib-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/solib-precsave.exp
@@ -140,8 +140,17 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function one" {
pass $gdb_test_name
}
}
-gdb_test "reverse-step" "return 2.x.*" "reverse-step within solib function one"
-gdb_test "reverse-step" " middle part two.*" "reverse-step back to main one"
+# Depending on wether the closing } has a line associated, we might have
+# different acceptable results here
+gdb_test_multiple "reverse-step" "reverse-step within solib function one" {
+ -re -wrap "return y;.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "int y =.*" {
+ pass $gdb_test_name
+ }
+}
+repeat_cmd_until "reverse-step" "" "main .. at" "reverse-step back to main one"
gdb_test_multiple "reverse-step" "reverse-step into solib function two" {
-re -wrap "begin part two.*" {
@@ -152,8 +161,15 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function two" {
pass $gdb_test_name
}
}
-gdb_test "reverse-step" "return 2.x.*" "reverse-step within solib function two"
-gdb_test "reverse-step" " begin part two.*" "reverse-step back to main two"
+gdb_test_multiple "reverse-step" "reverse-step within solib function two" {
+ -re -wrap "return y;.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "int y =.*" {
+ pass $gdb_test_name
+ }
+}
+repeat_cmd_until "reverse-step" "" "main .. at" "reverse-step back to main two"
#
# Test reverse-next over debuggable solib function
diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.c b/gdb/testsuite/gdb.reverse/solib-reverse.c
index 7aa6008..20288e0 100644
--- a/gdb/testsuite/gdb.reverse/solib-reverse.c
+++ b/gdb/testsuite/gdb.reverse/solib-reverse.c
@@ -43,6 +43,7 @@ int main ()
shr1 ("message 2\n"); /* shr1 two */
shr1 ("message 3\n"); /* shr1 three */
- return 0; /* end part one */
-} /* end of main */
+ b[0] = 0; /* end part one */
+ return 0; /* end of main */
+}
diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.exp b/gdb/testsuite/gdb.reverse/solib-reverse.exp
index c061086..afc4659 100644
--- a/gdb/testsuite/gdb.reverse/solib-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/solib-reverse.exp
@@ -116,8 +116,17 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function one" {
pass $gdb_test_name
}
}
-gdb_test "reverse-step" "return 2.x.*" "reverse-step within solib function one"
-gdb_test "reverse-step" " middle part two.*" "reverse-step back to main one"
+# Depending on wether the closing } has a line associated, we might have
+# different acceptable results here
+gdb_test_multiple "reverse-step" "reverse-step within solib function one" {
+ -re -wrap "return y;.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "int y =.*" {
+ pass $gdb_test_name
+ }
+}
+repeat_cmd_until "reverse-step" "" "main .. at" "reverse-step back to main one"
gdb_test_multiple "reverse-step" "reverse-step into solib function two" {
-re -wrap "begin part two.*" {
@@ -128,8 +137,15 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function two" {
pass $gdb_test_name
}
}
-gdb_test "reverse-step" "return 2.x.*" "reverse-step within solib function two"
-gdb_test "reverse-step" " begin part two.*" "reverse-step back to main two"
+gdb_test_multiple "reverse-step" "reverse-step within solib function two" {
+ -re -wrap "return y;.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "int y =.*" {
+ pass $gdb_test_name
+ }
+}
+repeat_cmd_until "reverse-step" "" "main .. at" "reverse-step back to main two"
#
# Test reverse-next over debuggable solib function
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 36bf738..8432e63 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -9716,6 +9716,9 @@ proc repeat_cmd_until { command current target \
set count 0
gdb_test_multiple "$command" "$test_name" {
+ -re "$target.*$gdb_prompt $" {
+ pass "$test_name"
+ }
-re "$current.*$gdb_prompt $" {
incr count
if { $count < $max_steps } {
@@ -9725,9 +9728,6 @@ proc repeat_cmd_until { command current target \
fail "$test_name"
}
}
- -re "$target.*$gdb_prompt $" {
- pass "$test_name"
- }
}
}