aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-07-20 17:52:03 +0100
committerPedro Alves <palves@redhat.com>2017-07-20 17:52:03 +0100
commit62d2a18a2e4bdb3c278ecda54c8317f179375d28 (patch)
tree784dfb3c42ac0ddc0cf4d0c23292c791511ec9cb
parent2d2dbad0605c85bb75662d2f219b1b886d5ab4cb (diff)
downloadgdb-62d2a18a2e4bdb3c278ecda54c8317f179375d28.zip
gdb-62d2a18a2e4bdb3c278ecda54c8317f179375d28.tar.gz
gdb-62d2a18a2e4bdb3c278ecda54c8317f179375d28.tar.bz2
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 <palves@redhat.com> * 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.
-rw-r--r--gdb/testsuite/ChangeLog14
-rw-r--r--gdb/testsuite/gdb.base/dmsym.c8
-rw-r--r--gdb/testsuite/gdb.base/dmsym.exp39
-rw-r--r--gdb/testsuite/gdb.base/dmsym_main.c10
4 files changed, 37 insertions, 34 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 3f0a13e..ac68fba 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+2017-07-20 Pedro Alves <palves@redhat.com>
+
+ * 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 <palves@redhat.com>
* gdb.base/completion.exp: Adjust expected output.
diff --git a/gdb/testsuite/gdb.base/dmsym.c b/gdb/testsuite/gdb.base/dmsym.c
index f358b51..dccea23 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 <http://www.gnu.org/licenses/>. */
-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 a318080..191a319 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 <pck__foo__bar__minsym>"
-
-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 <test_minsym>"
-# 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 99589b8..0338dc7 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 <http://www.gnu.org/licenses/>. */
-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;