diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-10-04 17:59:51 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2019-12-04 10:24:59 +0000 |
commit | 293b38d60f15422cf7e3d3ba06fdbc5cc90aee67 (patch) | |
tree | d95a350a906bba209d71ad579864f79de84ed48e /gdb/doc | |
parent | 0ba59a29407a9d24559a653ce0401a26d9a37aaa (diff) | |
download | gdb-293b38d60f15422cf7e3d3ba06fdbc5cc90aee67.zip gdb-293b38d60f15422cf7e3d3ba06fdbc5cc90aee67.tar.gz gdb-293b38d60f15422cf7e3d3ba06fdbc5cc90aee67.tar.bz2 |
gdb/mi: Add -symbol-info-module-{variables,functions}
Two new MI command -symbol-info-module-variables and
-symbol-info-module-functions, which are the equivalent of the CLI
command 'info module variables' and 'info module functions'. These
return information about functions and variables within Fortran
modules.
gdb/ChangeLog:
* mi/mi-cmds.c (mi_cmds): Add -symbol-info-module-functions and
-symbol-info-module-variables entries.
* mi/mi-cmds.h (mi_cmd_symbol_info_module_functions): Declare.
(mi_cmd_symbol_info_module_variables): Declare.
* mi/mi-symbol-cmds.c
(module_symbol_search_iterator): New typedef.
(output_module_symbols_in_single_module_and_file): New function.
(output_module_symbols_in_single_module): New function.
(mi_info_module_functions_or_variables): New function.
(mi_cmd_symbol_info_module_functions): New function.
(mi_cmd_symbol_info_module_variables): New function.
* NEWS: Mention new MI command.
gdb/doc/ChangeLog:
* doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command
-symbol-info-module-functions and -symbol-info-module-variables.
gdb/testsuite/ChangeLog:
* gdb.mi/mi-fortran-modules.exp: Add additional tests for
-symbol-info-module-functions and -symbol-info-module-variables.
Change-Id: Ic96f12dd14bd7e34774c3cde008fec30a4055bfe
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 142 |
2 files changed, 147 insertions, 0 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 6b6f28e..5b3eab7 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-12-04 Andrew Burgess <andrew.burgess@embecosm.com> + + * doc/gdb.texinfo (GDB/MI Symbol Query): Document new MI command + -symbol-info-module-functions and -symbol-info-module-variables. + 2019-12-01 Tom Tromey <tom@tromey.com> * gdb.texinfo (TUI Configuration): Mention TUI border styles. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 198862a..6fb7e8a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -34058,6 +34058,148 @@ The corresponding @value{GDBN} command is @samp{info functions}. @end group @end smallexample +@subheading The @code{-symbol-info-module-functions} Command +@findex -symbol-info-module-functions +@anchor{-symbol-info-module-functions} + +@subsubheading Synopsis + +@smallexample + -symbol-info-module-functions [--module @var{module_regexp}] + [--name @var{name_regexp}] + [--type @var{type_regexp}] +@end smallexample + +@noindent +Return a list containing the names of all known functions within all +know Fortran modules. The functions are grouped by source file and +containing module, and shown with the line number on which each +function is defined. + +The option @code{--module} only returns results for modules matching +@var{module_regexp}. The option @code{--name} only returns functions +whose name matches @var{name_regexp}, and @code{--type} only returns +functions whose type matches @var{type_regexp}. + +@subsubheading @value{GDBN} Command + +The corresponding @value{GDBN} command is @samp{info module functions}. + +@subsubheading Example + +@smallexample +@group +(gdb) +-symbol-info-module-functions +^done,symbols= + [@{module="mod1", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + symbols=[@{line="21",name="mod1::check_all",type="void (void)", + description="void mod1::check_all(void);"@}]@}]@}, + @{module="mod2", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + symbols=[@{line="30",name="mod2::check_var_i",type="void (void)", + description="void mod2::check_var_i(void);"@}]@}]@}, + @{module="mod3", + files=[@{filename="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/projec/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="21",name="mod3::check_all",type="void (void)", + description="void mod3::check_all(void);"@}, + @{line="27",name="mod3::check_mod2",type="void (void)", + description="void mod3::check_mod2(void);"@}]@}]@}, + @{module="modmany", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="35",name="modmany::check_some",type="void (void)", + description="void modmany::check_some(void);"@}]@}]@}, + @{module="moduse", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="44",name="moduse::check_all",type="void (void)", + description="void moduse::check_all(void);"@}, + @{line="49",name="moduse::check_var_x",type="void (void)", + description="void moduse::check_var_x(void);"@}]@}]@}] +@end group +@end smallexample + +@subheading The @code{-symbol-info-module-variables} Command +@findex -symbol-info-module-variables +@anchor{-symbol-info-module-variables} + +@subsubheading Synopsis + +@smallexample + -symbol-info-module-variables [--module @var{module_regexp}] + [--name @var{name_regexp}] + [--type @var{type_regexp}] +@end smallexample + +@noindent +Return a list containing the names of all known variables within all +know Fortran modules. The variables are grouped by source file and +containing module, and shown with the line number on which each +variable is defined. + +The option @code{--module} only returns results for modules matching +@var{module_regexp}. The option @code{--name} only returns variables +whose name matches @var{name_regexp}, and @code{--type} only returns +variables whose type matches @var{type_regexp}. + +@subsubheading @value{GDBN} Command + +The corresponding @value{GDBN} command is @samp{info module variables}. + +@subsubheading Example + +@smallexample +@group +(gdb) +-symbol-info-module-variables +^done,symbols= + [@{module="mod1", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + symbols=[@{line="18",name="mod1::var_const",type="integer(kind=4)", + description="integer(kind=4) mod1::var_const;"@}, + @{line="17",name="mod1::var_i",type="integer(kind=4)", + description="integer(kind=4) mod1::var_i;"@}]@}]@}, + @{module="mod2", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90", + symbols=[@{line="28",name="mod2::var_i",type="integer(kind=4)", + description="integer(kind=4) mod2::var_i;"@}]@}]@}, + @{module="mod3", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="18",name="mod3::mod1",type="integer(kind=4)", + description="integer(kind=4) mod3::mod1;"@}, + @{line="17",name="mod3::mod2",type="integer(kind=4)", + description="integer(kind=4) mod3::mod2;"@}, + @{line="19",name="mod3::var_i",type="integer(kind=4)", + description="integer(kind=4) mod3::var_i;"@}]@}]@}, + @{module="modmany", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="33",name="modmany::var_a",type="integer(kind=4)", + description="integer(kind=4) modmany::var_a;"@}, + @{line="33",name="modmany::var_b",type="integer(kind=4)", + description="integer(kind=4) modmany::var_b;"@}, + @{line="33",name="modmany::var_c",type="integer(kind=4)", + description="integer(kind=4) modmany::var_c;"@}, + @{line="33",name="modmany::var_i",type="integer(kind=4)", + description="integer(kind=4) modmany::var_i;"@}]@}]@}, + @{module="moduse", + files=[@{filename="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + fullname="/project/gdb/testsuite/gdb.mi/mi-fortran-modules.f90", + symbols=[@{line="42",name="moduse::var_x",type="integer(kind=4)", + description="integer(kind=4) moduse::var_x;"@}, + @{line="42",name="moduse::var_y",type="integer(kind=4)", + description="integer(kind=4) moduse::var_y;"@}]@}]@}] +@end group +@end smallexample + @subheading The @code{-symbol-info-modules} Command @findex -symbol-info-modules @anchor{-symbol-info-modules} |