From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2042 invoked by alias); 29 Jun 2009 08:37:29 -0000 Received: (qmail 2032 invoked by uid 22791); 29 Jun 2009 08:37:28 -0000 X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from smtp.nokia.com (HELO mgw-mx09.nokia.com) (192.100.105.134) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Jun 2009 08:37:18 +0000 Received: from esebh105.NOE.Nokia.com (esebh105.ntc.nokia.com [172.21.138.211]) by mgw-mx09.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id n5T8aBjT003169 for ; Mon, 29 Jun 2009 03:37:19 -0500 Received: from vaebh104.NOE.Nokia.com ([10.160.244.30]) by esebh105.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 29 Jun 2009 11:37:05 +0300 Received: from mgw-da02.ext.nokia.com ([147.243.128.26]) by vaebh104.NOE.Nokia.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Mon, 29 Jun 2009 11:37:01 +0300 Received: from gar.localnet (bettdhcp167194.europe.nokia.com [172.25.167.194]) by mgw-da02.ext.nokia.com (Switch-3.2.6/Switch-3.2.6) with ESMTP id n5T8atjY018395 for ; Mon, 29 Jun 2009 11:36:56 +0300 From: =?iso-8859-1?q?Andr=E9_P=F6nitz?= To: gdb@sourceware.org Subject: Re: -stack-list-locals and children Date: Mon, 29 Jun 2009 08:37:00 -0000 User-Agent: KMail/1.11.2 (Linux/2.6.28-11-generic; KDE/4.2.2; i686; ; ) References: <629542d40906281203o3601025at573704e36ee80565@mail.gmail.com> <200906290943.17323.andre.poenitz@nokia.com> <19016.30632.619762.345807@totara.tehura.co.nz> In-Reply-To: <19016.30632.619762.345807@totara.tehura.co.nz> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200906291038.07907.andre.poenitz@nokia.com> X-Nokia-AV: Clean 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 X-SW-Source: 2009-06/txt/msg00284.txt.bz2 On Monday 29 June 2009 10:13:28 Nick Roberts wrote: > > > -stack-list-locals doesn't return an numchild element. How can the IDE > > > know if a local > > > is has children? > > > > > > If there are children, they are listed in value: > > > ^done,locals=[{name="list",value="QList = {[0] = \"hello\"}"}] > > > > > > Is it a good idea to parse the value with an regular expression to > > > find out if there are children? > > > > It would be really nice if 'type' and 'numchild' information was directly > > included in that "primary" output. The information is available on > > the gdb side, so parsing it from the 'value' field does not really look > > like a good solution in the long run. > > What would you do with this information? Use it in a GUI frontend to determine whether the item should be expandable or not. > Note that -stack-list-locals --simple-values _does_ give type information and, > if this is presented to the user, he can usually infer the number of children. > In the manual: > > -stack-list-locals --simple-values > ^done,locals=[{name="A",type="int",value="1"}, > {name="B",type="int",value="2"},{name="C",type="int [3]"}] > (gdb) ^^^^^^^ > > C has three children. Sure I can filter out whatever information is implicitly provided in the output, and ask for more if needed. But as roundtrips through gdb are expensive time-wise It would be nicer though if all information necessary to build the top level of the typical "variable view" could be extracted from gdb in one go. > Remember that these aren't variable objects but in Emacs, at least, you can > make variable objects from them simply by clicking mouse-2 on them in the > locals buffer. > > It can be expensive to make variable objects from all the locals every time > the frame changes but this is what Insight does, and Apple GDB has MI code > to do it. So maybe Xcode does too. Apple creates variables automatically and it is not slow. Andre'