diff options
author | Pedro Alves <palves@redhat.com> | 2018-01-10 20:38:06 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2018-01-10 20:38:06 +0000 |
commit | 8825213e97f0476068dc3b52b1b61df96b40708a (patch) | |
tree | 177efe10098282d88b703844c7e5370d6822abc1 /gdb/testsuite | |
parent | 7ec0cd50bf2c93854ef02b9c1f3b4edc4b70cd46 (diff) | |
download | gdb-8825213e97f0476068dc3b52b1b61df96b40708a.zip gdb-8825213e97f0476068dc3b52b1b61df96b40708a.tar.gz gdb-8825213e97f0476068dc3b52b1b61df96b40708a.tar.bz2 |
Fix gdb.ada/bp_c_mixed_case.exp (PR gdb/22670)
The problem here is that we are using the user-provided lookup name
literally for name comparisons. I.e., "<MixedCase>" with the "<>"s
included.
This commit fixes the minsym lookup case. psymbol/symbol lookup will
be fixed in a follow up.
In the minsym case, we're using using the user-provided lookup name
literally for linkage name comparisons. That obviously can't work
since the "<>" are not really part of the linkage name.
The original idea was that we'd use the symbol's language to select
the right symbol name matching algorithm, but that doesn't work for
Ada because it's not really possible to unambiguously tell from the
linkage name alone whether we're dealing with Ada symbols, so Ada
minsyms end up with no language set, or sometimes C++ set.
So fix this by treating Ada mode specially when determining the
linkage name to match against.
gdb/ChangeLog:
2018-01-10 Pedro Alves <palves@redhat.com>
PR gdb/22670
* minsyms.c (linkage_name_str): New function.
(iterate_over_minimal_symbols): Use it.
gdb/testsuite/ChangeLog:
2018-01-10 Pedro Alves <palves@redhat.com>
PR gdb/22670
* gdb.ada/bp_c_mixed_case.exp: Remove setup_kfail calls.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.ada/bp_c_mixed_case.exp | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 71424a9..ec763fc 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-01-10 Pedro Alves <palves@redhat.com> + + PR gdb/22670 + * gdb.ada/bp_c_mixed_case.exp: Remove setup_kfail calls. + 2018-01-08 Simon Marchi <simon.marchi@ericsson.com> * gdb.server/unittest.exp: Match the output in non-development diff --git a/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp b/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp index 54c61e3..7787646 100644 --- a/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp +++ b/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp @@ -40,13 +40,11 @@ gdb_test "show lang" \ # Try inserting a breakpoint inside a C function. Because the function's # name has some uppercase letters, we need to use the "<...>" notation. # The purpose of this testcase is to verify that we can in fact do so -# and that it inserts the breakpoint at the expected location. -setup_kfail gdb/22670 "*-*-*" +# and that it inserts the breakpoint at the expected location. See gdb/22670. gdb_test "break <MixedCaseFunc>" \ "Breakpoint $decimal at $hex: file .*bar.c, line $decimal\\." # Resume the program's execution, verifying that it lands at the expected # location. -setup_kfail gdb/22670 "*-*-*" gdb_test "continue" \ "Breakpoint $decimal, MixedCaseFunc \\(\\) at .*bar\\.c:$decimal.*" |