From 62d2a18a2e4bdb3c278ecda54c8317f179375d28 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 20 Jul 2017 17:52:03 +0100 Subject: [PATCH] Make gdb.base/dmsym.exp independent of "set language ada" This test is using "set language ada" expecting that to cause GDB to do Ada symbol name matching. That won't work when GDB uses the symbol's language to decide which symbol matching algorithm to use, because the test's symbols are C symbols. So generalize the test a bit to not rely on Ada name matching rules. Confirmed that by undoing the original fix the test was written for, the test still fails. gdb/testsuite/ChangeLog: 2017-07-20 Pedro Alves * gdb.base/dmsym.c (pck__foo__bar__minsym): Rename to ... (test_minsym): ... this, and make static. (get_pck__foo__bar__minsym): Rename to ... (get_test_minsym): ... this. * gdb.base/dmsym.exp (): Remove "set language ada" call. Adjust symbol names and comments. * gdb.base/dmsym_main.c (get_pck__foo__bar__minsym): Rename to ... (get_test_minsym): ... this. (pck__foo__bar__minsym__2): Rename to ... (test_minsym): ... this. (main): Adjust. --- gdb/testsuite/ChangeLog | 14 +++++++++++ gdb/testsuite/gdb.base/dmsym.c | 8 +++--- gdb/testsuite/gdb.base/dmsym.exp | 39 +++++++++++------------------ gdb/testsuite/gdb.base/dmsym_main.c | 10 ++++---- 4 files changed, 37 insertions(+), 34 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 3f0a13e109f..ac68fba1bfc 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,17 @@ +2017-07-20 Pedro Alves + + * gdb.base/dmsym.c (pck__foo__bar__minsym): Rename to ... + (test_minsym): ... this, and make static. + (get_pck__foo__bar__minsym): Rename to ... + (get_test_minsym): ... this. + * gdb.base/dmsym.exp (): Remove "set language ada" call. Adjust + symbol names and comments. + * gdb.base/dmsym_main.c (get_pck__foo__bar__minsym): Rename to ... + (get_test_minsym): ... this. + (pck__foo__bar__minsym__2): Rename to ... + (test_minsym): ... this. + (main): Adjust. + 2017-07-17 Pedro Alves * gdb.base/completion.exp: Adjust expected output. diff --git a/gdb/testsuite/gdb.base/dmsym.c b/gdb/testsuite/gdb.base/dmsym.c index f358b517ab9..dccea237340 100644 --- a/gdb/testsuite/gdb.base/dmsym.c +++ b/gdb/testsuite/gdb.base/dmsym.c @@ -15,11 +15,11 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -int pck__foo__bar__minsym = 123; +static int test_minsym = 123; int -get_pck__foo__bar__minsym (void) +get_test_minsym (void) { - pck__foo__bar__minsym++; - return pck__foo__bar__minsym; + test_minsym++; + return test_minsym; } diff --git a/gdb/testsuite/gdb.base/dmsym.exp b/gdb/testsuite/gdb.base/dmsym.exp index a3180806af6..191a319734e 100644 --- a/gdb/testsuite/gdb.base/dmsym.exp +++ b/gdb/testsuite/gdb.base/dmsym.exp @@ -44,42 +44,31 @@ clean_restart ${testfile} set num "\[0-9\]+" set addr "0x\[0-9a-zA-Z\]+" -# Although the test program is written in C, the original problem -# occurs only when the language is Ada. The use of a C program is -# only a convenience to be able to exercise the original problem -# without requiring an Ada compiler. In the meantime, temporarily -# force the language to Ada. - -gdb_test_no_output "set lang ada" - -# Verify that setting a breakpoint on `pck__foo__bar__minsym' only -# results in one location found (function pck__foo__bar__minsym__2). -# A mistake would be to also insert a breakpoint where -# pck__foo__bar__minsym is defined. Despite the fact that there is -# no debugging info available, this is a data symbol and thus should -# not be used for breakpoint purposes. - -gdb_test "break pck__foo__bar__minsym" \ +# Verify that setting a breakpoint on `test_minsym' only results in +# one location found. A mistake would be to also insert a breakpoint +# in the test_minsym data symbol in dmsym.c. Despite the fact that +# there is no debugging info available, this is a data symbol and thus +# should not be used for breakpoint purposes. + +gdb_test "break test_minsym" \ "Breakpoint $num at $addr.: file .*dmsym_main\\.c, line $num\\." # However, verify that the `info line' command, on the other hand, # finds both locations. -gdb_test "info line pck__foo__bar__minsym" \ - "Line $num of \".*dmsym_main\\.c\" .*\r\nNo line number information available for address $addr " - -gdb_test_no_output "set lang auto" +gdb_test "info line test_minsym" \ + "Line $num of \".*dmsym_main\\.c\" .*\r\nNo line number information available for address $addr " -# Now, run the program until we get past the call to -# pck__foo__bar__minsym__2. Except when using hardware breakpoints, -# inferior behavior is going to be affected if a breakpoint was -# incorrectly inserted at pck__foo__bar__minsym. +# Now, run the program until we get past the call to test_minsym. +# Except when using hardware breakpoints, inferior behavior is going +# to be affected if a breakpoint was incorrectly inserted at +# test_minsym. gdb_breakpoint dmsym_main.c:[gdb_get_line_number "BREAK" dmsym_main.c] gdb_run_cmd gdb_test "" \ - "Breakpoint $num, pck__foo__bar__minsym__2 \\(\\) at.*" \ + "Breakpoint $num, test_minsym \\(\\) at.*" \ "run until breakpoint at BREAK" gdb_test "continue" \ diff --git a/gdb/testsuite/gdb.base/dmsym_main.c b/gdb/testsuite/gdb.base/dmsym_main.c index 99589b8bfc8..0338dc7de98 100644 --- a/gdb/testsuite/gdb.base/dmsym_main.c +++ b/gdb/testsuite/gdb.base/dmsym_main.c @@ -15,18 +15,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -extern int get_pck__foo__bar__minsym (void); +extern int get_test_minsym (void); -int -pck__foo__bar__minsym__2 (void) +static int +test_minsym (void) { - return get_pck__foo__bar__minsym (); + return get_test_minsym (); } int main (void) { - int val = pck__foo__bar__minsym__2 (); + int val = test_minsym (); if (val != 124) /* BREAK */ return 1; -- 2.30.2