public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Bruno Larsen <blarsen@redhat.com>
To: gdb-patches@sourceware.org
Subject: [PATCH v5 2/7] Change gdb.base/skip-solib.exp deal with lack of epilogue information
Date: Wed, 14 Sep 2022 15:14:22 +0200	[thread overview]
Message-ID: <20220914131427.269689-3-blarsen@redhat.com> (raw)
In-Reply-To: <20220914131427.269689-1-blarsen@redhat.com>

When running gdb.base/skip-solib.exp, the backtrace tests could fail with
compilers that associated epilogue instructions with the last statement
line of the function, instead of associating it with the closing brace,
despite the feature being fully functional.  As an example, when testing
skipping the function square, the testsuite would show

Breakpoint 1, main () at (...)/binutils-gdb/gdb/testsuite/gdb.base/skip-solib-main.c:5
5         return square(0);
(gdb) step
0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6
(gdb) PASS: gdb.base/skip-solib.exp: ignoring solib file: step
bt
 #0  0x00007ffff7cef560 in __libc_start_call_main () from /lib64/libc.so.6
 #1  0x00007ffff7cef60c in __libc_start_main_impl () from /lib64/libc.so.6
 #2  0x0000000000401065 in _start ()
(gdb) FAIL: gdb.base/skip-solib.exp: ignoring solib file: bt

Which means that the feature is working, the testsuite is just
mis-identifying it.  To avoid this problem, the skipped function calls
have been sent to a line before `return`, so epilogues won't factor in.
---
 gdb/testsuite/gdb.base/skip-solib-lib.c  | 3 ++-
 gdb/testsuite/gdb.base/skip-solib-main.c | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.base/skip-solib-lib.c b/gdb/testsuite/gdb.base/skip-solib-lib.c
index b2c4d86d703..341f1440a3b 100644
--- a/gdb/testsuite/gdb.base/skip-solib-lib.c
+++ b/gdb/testsuite/gdb.base/skip-solib-lib.c
@@ -7,5 +7,6 @@ int multiply(int a, int b)
 
 int square(int num)
 {
-  return multiply(num, num);
+  int res = multiply(num, num);
+  return res;
 }
diff --git a/gdb/testsuite/gdb.base/skip-solib-main.c b/gdb/testsuite/gdb.base/skip-solib-main.c
index 746bb5f36bb..a3b6d417935 100644
--- a/gdb/testsuite/gdb.base/skip-solib-main.c
+++ b/gdb/testsuite/gdb.base/skip-solib-main.c
@@ -2,5 +2,6 @@ int square(int num);
 
 int main()
 {
-  return square(0);
+  int s = square(0);
+  return s;
 }
-- 
2.37.3


  parent reply	other threads:[~2022-09-14 13:14 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-14 13:14 [PATCH v5 0/7] Clean gdb.base when testing with clang Bruno Larsen
2022-09-14 13:14 ` [PATCH v5 1/7] gdb/testsuite: Add a proc to test where compiler links the epilogue Bruno Larsen
2022-09-14 13:14 ` Bruno Larsen [this message]
2022-09-14 13:14 ` [PATCH v5 3/7] gdb/testsuite: fix testing gdb.base/skip-inline.exp with clang Bruno Larsen
2022-09-14 13:14 ` [PATCH v5 4/7] gdb/testsuite: fix gdb.base/msym-bp-shl when running with Clang Bruno Larsen
2022-09-14 13:14 ` [PATCH v5 5/7] fix gdb.base/jit-elf.exp when testing with clang Bruno Larsen
2022-09-14 13:14 ` [PATCH v5 6/7] gdb.base/skip.exp: Use finish to exit functions Bruno Larsen
2022-09-14 13:14 ` [PATCH v5 7/7] gdb/testsuite: Add test to step through function epilogue Bruno Larsen
2022-09-21 16:05 ` [PATCH v5 0/7] Clean gdb.base when testing with clang Tom Tromey
2022-09-22  9:05   ` Bruno Larsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220914131427.269689-3-blarsen@redhat.com \
    --to=blarsen@redhat.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).