diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-09-03 22:39:00 +0100 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2019-09-24 20:23:50 -0400 |
commit | 034c427030a93a2432c34cb0804d07947de64de7 (patch) | |
tree | b87d0e34008541e4b478c53ac488566a56b6900c /gdb/f-lang.c | |
parent | dae2db38ebaa76ed359bb39cc40c9b5e0b072e12 (diff) | |
download | fsf-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.c | 4 |
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, |