[RFAv3 0/5] info [args|functions|locals|variables] [-q] [-t TYPEREGEXP] [NAMEREGEXP]

Philippe Waroquiers philippe.waroquiers@skynet.be
Tue Oct 2 18:17:00 GMT 2018


Ping ?
Thanks

On Sun, 2018-09-23 at 23:42 +0200, Philippe Waroquiers wrote:
> [RFAv3 0/5] info [args|functions|locals|variables] [-q] [-t TYPEREGEXP] [NAMEREGEXP]
> 
> RFAv3, handling the comments of Tom and Eli about RFAv2.
> --------------------------------------------------------
> * code changes:
>   - reworked extract_arg_maybe_quoted to have it working the same way
>     as gdb_argv. In another patch series, I will evaluate more in
>     detail handling quoting/escaping inside extract_arg, by analysing
>     all callers.
>   - fixed (and tested) regression when NAMEREGEXP arg contains spaces.
>   - replaced INFO_PRINT_ARGS_HELP by function info_print_args_help
>     to make this gettext friendly.
> 
>   - instead of preg/treg regexp new arguments to iterate_over_block_arg_vars
>     and iterate_over_block_local_vars, have preg/treg being part
>     of the opaque cb_data, and do filtering inside do_print_variable_and_value.
>   - no need anymore to include gdb_regex.h in various files or stack.h.
>   - used preg/treg.has_value() instead of implicit conversion to boolean.
>   - used *reg instead of &reg for an out parameter.
>   - handled language specific type printing using set_language and RAII.
>   - no new line after return type for function declaration.
>   
> * documentation changes:
>   - handled the comments of Eli: rephrase two sentences as one,
>     remove redundant blank before :.
>   - quoting/backslash handling of TYPEREGEXP slightly updated according
>     to the switch to gdb_argv quoting behaviour.
> 
> 
> Changes between the first RFA and RFAv2:
> ---------------------------------------
> The documentation parts were already reviewed by Eli, other parts
> were not reviewed yet.
> Compared to the first RFA, the changes are a rebase to the last trunk version,
> the removal of an unused local variable, and some updates to the new
> info_qt.exp test to ensure unicity of test names.
> 
> Changes between first RFA and  the RFC:
> ---------------------------------------
> * Handled comments of Eli on the documentation.
> * ChangeLog entries added in commit messages
> * Test added.
> 
> Thanks.
> 
> 
> This patch series adds flags and/or arguments
> [-q] [-t TYPEREGEXP] [NAMEREGEXP] to the commands
>   info [args|functions|locals|variables]
> 
> The additional arguments allow to more precisely specify what to print.
> As these new features can usefully be combined with frame apply and thread
> apply, the documentation gives examples combining the above
> and the 'thread apply' and 'frame apply' commands.
> 
> Some examples:
> * print functions returning an int:
>     info functions -t '^int ('
> * print local variables having pthread_t type
>     info locals -t pthread_t
> * print global variables having type 'struct addrinfo'
>     info var -t 'struct addrinfo'
> * print args that are likely file descriptors
>     info arg -t int .*fd.*
> 
> Below examples are combined with the 'thread/frame apply' commands:
> 
> * Assuming lock_something_t is an RAII type, show all locks:
>   thread apply all -s frame apply all -s info locals -q -t lock_something_t
>  or shorter equivalent:
>   tfaas i lo -q -t lock_something_t
> 
> * show frames and args having an arg with type matchin std::.*map
>   so likely  std::map or std::unordered_map
>   frame apply all -s info args -q std::.*map
> 
> 
> The code, documentation, NEWS, test and ChangeLog are complete.
> 
> 



More information about the Gdb-patches mailing list