aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2020-08-28 18:44:39 +0100
committerPedro Alves <pedro@palves.net>2020-08-28 18:44:39 +0100
commit8f57f343104b8d3632e65ac1fbb12ee69891ef5f (patch)
tree1854e250d8b41e568149b6333bcee41ff7dca7ff
parente0814aae5f16c06d82fde23f8bea15eea205aa54 (diff)
downloadgdb-8f57f343104b8d3632e65ac1fbb12ee69891ef5f.zip
gdb-8f57f343104b8d3632e65ac1fbb12ee69891ef5f.tar.gz
gdb-8f57f343104b8d3632e65ac1fbb12ee69891ef5f.tar.bz2
Fix gdb.base/advance-until-multiple-locations.exp with some compilers
The tests in gdb.base/advance-until-multiple-locations.exp that expect the program to stop at a caller fail on some systems, depending on compiler. E.g., with Clang 10, I see: advance ovld_func 0x00000000004011a3 in test () at /home/pedro/gdb/binutils-gdb/src/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc:51 51 ovld_func (); (gdb) FAIL: gdb.base/advance-until-multiple-locations.exp: advance_overload: second advance stops at caller And Tom de Vries saw: ... (gdb) until ovld_func^M main () at advance-until-multiple-locations.cc:61^M 61 }^M (gdb) FAIL: gdb.base/advance-until-multiple-locations.exp:until_overload: until ovld_func ... Which exact line the program stops is not important. All we care about here is that the program stopped at the caller function. So fix it by adjusting the patterns to match the frame header/function reported by the breakpoint hits instead of the source lines text. Tested against: - gcc {4.8, 4.9, 7.3.1, 9.3.0, trunk-20200828} - clang {5.0.2, 10} gdb/testsuite/ChangeLog: * gdb.base/advance-until-multiple-locations.exp (advance_overload, until_overload): Adjust to match the frame/function header instead of the source line text.
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/advance-until-multiple-locations.exp4
2 files changed, 8 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 6335ece..af44440 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2020-08-28 Pedro Alves <pedro@palves.net>
+
+ * gdb.base/advance-until-multiple-locations.exp
+ (advance_overload, until_overload): Adjust to match the
+ frame/function header instead of the source line text.
+
2020-08-28 Tom de Vries <tdevries@suse.de>
* gdb.base/label-without-address.c: New test.
diff --git a/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp b/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
index a6a1de6..0f919b4 100644
--- a/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
+++ b/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
@@ -104,7 +104,7 @@ proc_with_prefix advance_overload {} {
# Need to issue the advance twice, because advance also stops upon
# exit from the current stack frame.
gdb_test "advance ovld_func" \
- "ovld_func \\(0\\);.*" \
+ "test \\(\\) at .*" \
"second advance stops at caller"
gdb_test "advance ovld_func" \
@@ -129,7 +129,7 @@ proc_with_prefix until_overload {} {
# ovld_func is a different frame, so it shouldn't cause a stop.
# Instead, the program should stop at the caller frame.
gdb_test "until ovld_func" \
- "main .* at .*return test \\(\\);.*"
+ "main \\(\\) at .*"
}
foreach_with_prefix cmd {"until" "advance"} {