Re: [PATCH 7/7] gdb: Add new commands to list module variables and functions

Eli Zaretskii
2019-07-27T17:06:02Z

> From: Andrew Burgess <andrew.burgess@embecosm.com>
> Cc: Richard Bunt <Richard.Bunt@arm.com>, Andrew Burgess <andrew.burgess@embecosm.com>
> Date: Sat, 27 Jul 2019 17:22:35 +0100
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index 14c931602f4..9b7e6cc1c71 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -110,6 +110,20 @@ info modules [-q] [REGEXP]
> their DWARF (for example Fortran) will give any results for this
> command.
>
> +info module functions [-q] [-m MODULE_REGEXP] [-t TYPE_REGEXP] [REGEXP]
> + Return a list of functions within all modules, grouped by module.
> + The list of functions can be restricted with the optional regular
> + expressions. MODULE_REGEXP matches against the module name,
> + TYPE_REGEXP matches against the function type signature, and REGEXP
> + matches against the function name.
> +
> +info module variables [-q] [-m MODULE_REGEXP] [-t TYPE_REGEXP] [REGEXP]
> + Return a list of variables within all modules, grouped by module.
> + The list of variables can be restricted with the optional regular
> + expressions. MODULE_REGEXP matches against the module name,
> + TYPE_REGEXP matches against the variable type, and REGEXP matches
> + against the variable name.

Modulo the explanation of what is a module, this part is OK.

> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -18633,6 +18633,40 @@
> printing header information and messages explaining why no functions
> have been printed.
>
> +@kindex info module functions
> +@cindex modules
> +@cindex functions
> +@cindex module functions
> +@item info module functions [-q] [-m @var{module-regexp}] [-t @var{type-regexp}] [@var{regexp}]
> +List all functions within all modules. The set of functions listed
> +can be limited by providing some or all of the optional regular
> +expressions. If @var{module-regexp} is provided, then only modules
> +matching @var{module-regexp} will be searched. Only functions whose
> +type matches the optional regular expression @var{type-regexp} will be
> +listed. And only functions whose name matches the optional regular
> +expression @var{regexp} will be listed.
> +
> +The optional flag @samp{-q}, which stands for @samp{quiet}, disables
> +printing header information and messages explaining why no functions
> +have been printed.
> +
> +@kindex info module variables
> +@cindex modules
> +@cindex variables
> +@cindex module variables
> +@item info module variables [-q] [-m @var{module-regexp}] [-t @var{type-regexp}] [@var{regexp}]
> +List all variables within all modules. The set of variables listed
> +can be limited by providing some or all of the optional regular
> +expressions. If @var{module-regexp} is provided, then only modules
> +matching @var{module-regexp} will be searched. Only variables whose
> +type matches the optional regular expression @var{type-regexp} will be
> +listed. And only variables whose name matches the optional regular
> +expression @var{regexp} will be listed.
> +
> +The optional flag @samp{-q}, which stands for @samp{quiet}, disables
> +printing header information and messages explaining why no variables
> +have been printed.

These two commands are very similar, so I would suggest to describe
both of them in the same text, instead of repeating almost the same
description twice.

> + c = add_cmd ("functions", class_info, info_module_functions_command, _("\
> +Display functions within each module.\n\

I'd say instead "Display functions arranged by modules."

Thanks.