aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorBruno Larsen <blarsen@redhat.com>2022-07-20 16:44:37 -0300
committerBruno Larsen <blarsen@redhat.com>2022-09-13 14:02:51 +0200
commit8fa9bc6a030c9a41eb8cf6f0f66043e02005b291 (patch)
tree179bbd653148acc4de5bb541907ce097d4729653 /gdb
parent9db78678c7c08760fe1eff7d94a5989cf2fc4145 (diff)
downloadgdb-8fa9bc6a030c9a41eb8cf6f0f66043e02005b291.zip
gdb-8fa9bc6a030c9a41eb8cf6f0f66043e02005b291.tar.gz
gdb-8fa9bc6a030c9a41eb8cf6f0f66043e02005b291.tar.bz2
gdb/testsuite: Update gdb.base/so-impl-ld.exp
gdb.base/so-impl-ld.exp was setup assuming that the compiler would add epilogue information and that GDB would stop in the } line. This would make clang tests fail like so: step^M solib_main (arg=10000) at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/solib1.c:7^M 7|__ return arg*arg;|__|___/* HERE */^M (gdb) PASS: gdb.base/so-impl-ld.exp: step into solib call next^M main () at ../../../common/git-repos/binutils-gdb/gdb/testsuite/gdb.base/so-impl-ld.c:22^M 22|_ return 0;^M (gdb) FAIL: gdb.base/so-impl-ld.exp: step in solib call next^M 0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6^M (gdb) FAIL: gdb.base/so-impl-ld.exp: step out of solib call This patch changes it so solib_main has 2 lines where GDB can stop regardless of compiler choices, and updates the exp file to generically deal with unknown number of steps until leaving that function.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.base/so-impl-ld.exp13
-rw-r--r--gdb/testsuite/gdb.base/solib1.c5
2 files changed, 5 insertions, 13 deletions
diff --git a/gdb/testsuite/gdb.base/so-impl-ld.exp b/gdb/testsuite/gdb.base/so-impl-ld.exp
index 372b18f..3c5d107 100644
--- a/gdb/testsuite/gdb.base/so-impl-ld.exp
+++ b/gdb/testsuite/gdb.base/so-impl-ld.exp
@@ -56,21 +56,12 @@ gdb_test "step" "solib_main .arg=10000. at.*${libfile}.c:${decimal}.* HERE .*" \
# Verify that we can step within the shlib call.
#
-gdb_test "next" "${decimal}\[ \t\]*\}.* STEP .*" "step in solib call"
+gdb_test "next" "${decimal}\[ \t\]*return ans;.* STEP .*" "step in solib call"
# Verify that we can step out of the shlib call, and back out into
# the caller.
#
-gdb_test_multiple "next" "step out of solib call" {
- -re "0x\[0-9a-f\]*\[ \t\]*9\[ \t\]*.*$gdb_prompt $" {
- gdb_test "next" \
- "main .. at.*so-impl-ld.c:22.*" \
- "step out of solib call"
- }
- -re "main .. at.*so-impl-ld.c:22.*$gdb_prompt $" {
- pass "step out of solib call"
- }
-}
+gdb_step_until ".*main .. at.*return 0;.*" "step out of solib call"
gdb_exit
return 0
diff --git a/gdb/testsuite/gdb.base/solib1.c b/gdb/testsuite/gdb.base/solib1.c
index 16b7233..bf52bee 100644
--- a/gdb/testsuite/gdb.base/solib1.c
+++ b/gdb/testsuite/gdb.base/solib1.c
@@ -4,5 +4,6 @@ extern "C"
int
solib_main (int arg)
{
- return arg*arg; /* HERE */
-} /* STEP */
+ int ans = arg*arg; /* HERE */
+ return ans; /* STEP */
+}