From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9959 invoked by alias); 21 Jul 2011 04:36:07 -0000 Received: (qmail 9716 invoked by uid 22791); 21 Jul 2011 04:36:03 -0000 X-SWARE-Spam-Status: No, hits=-7.0 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 21 Jul 2011 04:35:39 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6L4Zd4O002274 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 21 Jul 2011 00:35:39 -0400 Received: from host1.jankratochvil.net (ovpn-116-20.ams2.redhat.com [10.36.116.20]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p6L4ZaT3019325 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 21 Jul 2011 00:35:38 -0400 Received: from host1.jankratochvil.net (localhost [127.0.0.1]) by host1.jankratochvil.net (8.14.4/8.14.4) with ESMTP id p6L4ZZTK032227; Thu, 21 Jul 2011 06:35:35 +0200 Received: (from jkratoch@localhost) by host1.jankratochvil.net (8.14.4/8.14.4/Submit) id p6L4ZXEi031671; Thu, 21 Jul 2011 06:35:33 +0200 Date: Thu, 21 Jul 2011 04:36:00 -0000 From: Jan Kratochvil To: Alistair Leslie-Hughes Cc: gdb@sourceware.org Subject: Re: struct/class members using mi interface Message-ID: <20110721043531.GA1440@host1.jankratochvil.net> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes 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: 2011-07/txt/msg00089.txt.bz2 On Wed, 20 Jul 2011 08:24:45 +0200, Alistair Leslie-Hughes wrote: > Using the mi interface, is there a way to retrieve all the member > variables of a class/struct? yes, for samples one can check/run gdb/testsuite/gdb.mi/*.exp (first part below) or I also sniffed Eclipse CDT communication by setting its gdb command to a script (second part below). Regards, Jan -var-create var1 * a ^done,name="var1",numchild="3",value="{...}",type="A",thread-id="1",has_more="0" -var-list-children var1 ^done,numchild="3",children=[child={name="var1.public",exp="public",numchild="2",thread-id="1"},child={name="var1.private",exp="private",numchild="2",thread-id="1"},child={name="var1.protected",exp="protected",numchild="2",thread-id="1"}],has_more="0" -var-list-children var1.public ^done,numchild="2",children=[child={name="var1.public.x",exp="x",numchild="0",type="int",thread-id="1"},child={name="var1.public.buffer",exp="buffer",numchild="10",type="char [10]",thread-id="1"}],has_more="0" -var-list-children var1.private ^done,numchild="2",children=[child={name="var1.private.u",exp="u",numchild="0",type="int",thread-id="1"},child={name="var1.private.z",exp="z",numchild="0",type="float",thread-id="1"}],has_more="0" -var-list-children var1.protected ^done,numchild="2",children=[child={name="var1.protected.y",exp="y",numchild="0",type="int",thread-id="1"},child={name="var1.protected.b",exp="b",numchild="2",type="B",thread-id="1"}],has_more="0" -var-list-children var1.protected.b ^done,numchild="2",children=[child={name="var1.protected.b.public",exp="public",numchild="2",thread-id="1"},child={name="var1.protected.b.private",exp="private",numchild="1",thread-id="1"}],has_more="0" ------------------------------------------------------------------------------ #! /bin/sh TMP=/tmp if [ -d $TMP/server ];then TMP=$TMP/server fi DIR=$TMP/gdb.d mkdir -p $DIR i=0 while true;do FILE=$DIR/`printf %02d $i` if ! test -f $FILE;then break fi i=$[$i+1] done tee $FILE.in | "$0"-orig "$@" | tee $FILE.out