From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20887 invoked by alias); 8 Aug 2014 10:35:17 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 20871 invoked by uid 89); 8 Aug 2014 10:35:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 08 Aug 2014 10:35:15 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1XFhVv-00065e-87 from Yao_Qi@mentor.com ; Fri, 08 Aug 2014 03:35:11 -0700 Received: from SVR-ORW-FEM-05.mgc.mentorg.com ([147.34.97.43]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 8 Aug 2014 03:35:11 -0700 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-05.mgc.mentorg.com (147.34.97.43) with Microsoft SMTP Server id 14.2.247.3; Fri, 8 Aug 2014 03:35:10 -0700 Message-ID: <53E4A6F8.1000905@codesourcery.com> Date: Fri, 08 Aug 2014 10:35:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Raphael Zulliger , "gdb@sourceware.org" Subject: Re: Performance issue of -var-list-children on structs with many members and remote targets References: <53E47B59.3060700@indel.ch> In-Reply-To: <53E47B59.3060700@indel.ch> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg00009.txt.bz2 On 08/08/2014 03:25 PM, Raphael Zulliger wrote: > Now my simple question: Couldn't GDB be tweaked to get the struct member > values by just one call (because members within a struct are guaranteed > to be consecutive, aren't they?): > > 499,883 38-var-list-children var2.public > 499,884 &"Sending packet: $m601050,24#??" > > I guess this would dramatically increase overall performance. > > I would really like to see such an improvement in GDB. Therefore, I'd be > very happy to hear your thoughts and suggestion. Thinks like: What > problems (e.g. border cases) could arise when implementing this? Where > to start in the GDB code for such a modification? Or do there exist any > GDB switches to improve performance on such operations? etc... I have no idea how to merge multiple reads into one. Cache is used in GDB to read code and stack from target, which increases performance to some extent (See target_read_code and target_read_stack). However, cache is NOT used to read general data. Probably, you can make general data reading use cache too. -- Yao (齐尧)