binutils-gdb/gdb/doc
Andrew Burgess 0a4b09130a gdb/fortran: Nested subroutine support
This patch is a rebase and update of the following three patches:

   https://sourceware.org/ml/gdb-patches/2018-11/msg00298.html
   https://sourceware.org/ml/gdb-patches/2018-11/msg00302.html
   https://sourceware.org/ml/gdb-patches/2018-11/msg00301.html

I have merged these together into a single commit as the second patch,
adding scope support to nested subroutines, means that some of the
changes in the first patch are now no longer useful and would have to
be backed out.  The third patch is tightly coupled to the changes in
the second of these patches and I think deserves to live together with
it.

There is an extra change in cp-namespace.c that is new, this resolves
an issue with symbol lookup when placing breakpoints from within
nested subroutines.

There is also an extra test added to this commit 'nested-funcs-2.exp'
that was written by Richard Bunt from ARM, this offers some additional
testing of breakpoints on nested functions.

After this commit it is possible to place breakpoints on nested
Fortran subroutines and functions by using a fully scoped name, for
example, given this simple Fortran program:

    program greeting
      call message
    contains
      subroutine message
        print *, "Hello World"
      end subroutine message
    end program greeting

It is possible to place a breakpoint in 'message' with:

    (gdb) break greeting::message
    Breakpoint 1 at 0x4006c9: file basic.f90, line 5.

What doesn't work with this commit is placing a breakpoint like this:

    (gdb) break message
    Function "message" not defined.

Making this work will come in a later commit.

gdb/ChangeLog:

	* cp-namespace.c (cp_search_static_and_baseclasses): Only search
	for nested static variables when searchin VAR_DOMAIN.
	* dwarf2read.c (add_partial_symbol): Add nested subroutines to the
	global scope, update comment.
	(add_partial_subprogram): Call add_partial_subprogram recursively
	for nested subroutines when processinng Fortran.
	(load_partial_dies): Process the child entities of a subprogram
	when processing Fortran.
	(partial_die_parent_scope): Handle building scope
	for Fortran nested functions.
	(process_die): Record that nested functions have a scope.
	(new_symbol): Always record Fortran subprograms on the global
	symbol list.
	(determine_prefix): How to build the prefix for Fortran
	subprograms.

gdb/testsuite/ChangeLog:

	* gdb.fortran/nested-funcs.exp: Tests for placing breakpoints on
	nested functions.
	* gdb.fortran/nested-funcs.f90: Update expected results.
	* gdb.fortran/nested-funcs-2.exp: New file.
	* gdb.fortran/nested-funcs-2.f90: New file.

gdb/doc/ChangeLog:

	* doc/gdb.texinfo (Fortran Operators): Describe scope operator.
2019-10-03 21:25:22 +01:00
..
.gitignore
a4rc.sed
agentexpr.texi Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
all-cfg.texi Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
annotate.texinfo Add thread-exit annotation. 2019-06-06 11:35:15 -06:00
ChangeLog gdb/fortran: Nested subroutine support 2019-10-03 21:25:22 +01:00
doxy-index.in Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
Doxyfile-base.in Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
Doxyfile-gdb-api.in Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
Doxyfile-gdb-xref.in Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
Doxyfile-gdbserver.in Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
fdl.texi
filter-for-doxygen
filter-params.pl
gdb.texinfo gdb/fortran: Nested subroutine support 2019-10-03 21:25:22 +01:00
gpl.texi
guile.texi gdb: Introduce 'print max-depth' feature 2019-04-29 22:01:09 +01:00
lpsrc.sed
Makefile.in Make "all" depend on "info" 2019-04-07 17:01:18 -06:00
psrc.sed
python.texi Add block['var'] accessor 2019-08-05 13:06:18 -05:00
refcard.tex Update copyright year range in gdb.texinfo and refcard.tex 2019-02-23 16:19:57 +04:00
stabs.texinfo Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
stack_frame.eps
stack_frame.pdf
stack_frame.png
stack_frame.svg
stack_frame.txt