From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 125580 invoked by alias); 11 Oct 2018 19:56:19 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 125570 invoked by uid 89); 11 Oct 2018 19:56:18 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-6.3 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=H*F:D*be, H*MI:sk:2018092, UD:be, H*f:sk:2018092 X-HELO: mailsec112.isp.belgacom.be Received: from mailsec112.isp.belgacom.be (HELO mailsec112.isp.belgacom.be) (195.238.20.108) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 11 Oct 2018 19:56:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skynet.be; i=@skynet.be; q=dns/txt; s=securemail; t=1539287775; x=1570823775; h=message-id:subject:from:to:date:in-reply-to:references: mime-version:content-transfer-encoding; bh=TpdWf/TsKsRWO7NGj6Jhvms7FRMRn9gCWBfSjWo8oqI=; b=NoG2FGfvjhxdaRiTNA4NRWdQA9xD4ODCeJe5vmb3c2yoTIPzDabVcvRI 5kzp+TzaevSi6AWolLl/5s14zWhurQ==; Received: from 69.236-245-81.adsl-dyn.isp.belgacom.be (HELO md) ([81.245.236.69]) by relay.skynet.be with ESMTP/TLS/AES256-GCM-SHA384; 11 Oct 2018 21:56:11 +0200 Message-ID: <1539287771.2137.4.camel@skynet.be> Subject: PING^2 Re: [RFAv3 0/5] info [args|functions|locals|variables] [-q] [-t TYPEREGEXP] [NAMEREGEXP] From: Philippe Waroquiers To: gdb-patches@sourceware.org Date: Thu, 11 Oct 2018 19:56:00 -0000 In-Reply-To: <20180923214209.985-1-philippe.waroquiers@skynet.be> References: <20180923214209.985-1-philippe.waroquiers@skynet.be> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2018-10/txt/msg00280.txt.bz2 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 ® 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. > >