aboutsummaryrefslogtreecommitdiff
path: root/gdb/f-lang.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-09-03 22:39:00 +0100
committerSimon Marchi <simon.marchi@polymtl.ca>2019-09-24 20:23:50 -0400
commit034c427030a93a2432c34cb0804d07947de64de7 (patch)
treeb87d0e34008541e4b478c53ac488566a56b6900c /gdb/f-lang.c
parentdae2db38ebaa76ed359bb39cc40c9b5e0b072e12 (diff)
downloadfsf-binutils-gdb-users/simark/fortran.zip
fsf-binutils-gdb-users/simark/fortran.tar.gz
fsf-binutils-gdb-users/simark/fortran.tar.bz2
gdb/fortran: Allow for matching symbols with missing scopeusers/simark/fortran
This commit allows symbol matching within Fortran code without having to specify all of the symbol's scope. For example, given this Fortran code: module aaa contains subroutine foo print *, "hello." end subroutine foo end module aaa subroutine foo print *, "hello." end subroutine foo program test call foo contains subroutine foo print *, "hello." end subroutine foo subroutine bar use aaa call foo end subroutine bar end program test The user can now do this: (gdb) b foo Breakpoint 1 at 0x4006c2: foo. (3 locations) (gdb) info breakpoints Num Type Disp Enb Address What 1 breakpoint keep y <MULTIPLE> 1.1 y 0x00000000004006c2 in aaa::foo at nest.f90:4 1.2 y 0x0000000000400730 in foo at nest.f90:9 1.3 y 0x00000000004007c3 in test::foo at nest.f90:16 The user asks for a breakpoint on 'foo' and is given a breakpoint on all three possible 'foo' locations. The user is, of course, still able to specify the scope in order to place a single breakpoint on just one of the foo functions (or use 'break -qualified foo' to break on just the global foo). gdb/ChangeLog: * f-lang.c (f_language_defn): Use cp_get_symbol_name_matcher and cp_search_name_hash. gdb/testsuite/ChangeLog: * gdb.fortran/nested-funcs-2.exp: Run tests with and without the nested function prefix.
Diffstat (limited to 'gdb/f-lang.c')
-rw-r--r--gdb/f-lang.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index ce7f147..5681379 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -673,9 +673,9 @@ extern const struct language_defn f_language_defn =
default_pass_by_reference,
default_get_string,
c_watch_location_expression,
- NULL, /* la_get_symbol_name_matcher */
+ cp_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
iterate_over_symbols,
- default_search_name_hash,
+ cp_search_name_hash,
&default_varobj_ops,
NULL,
NULL,