From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13005 invoked by alias); 29 Nov 2006 10:12:26 -0000 Received: (qmail 12994 invoked by uid 22791); 29 Nov 2006 10:12:24 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 29 Nov 2006 10:12:20 +0000 Received: (qmail 16712 invoked from network); 29 Nov 2006 10:12:17 -0000 Received: from unknown (HELO ?172.16.64.38?) (vladimir@127.0.0.2) by mail.codesourcery.com with ESMTPA; 29 Nov 2006 10:12:17 -0000 From: Vladimir Prus To: gdb-patches@sources.redhat.com Subject: Re: Language of registers Date: Wed, 29 Nov 2006 10:12:00 -0000 User-Agent: KMail/1.9.1 References: <200611251421.43173.vladimir@codesourcery.com> <20061127140344.GA32528@nevyn.them.org> In-Reply-To: <20061127140344.GA32528@nevyn.them.org> Cc: Daniel Jacobowitz MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200611291312.04104.vladimir@codesourcery.com> 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 X-SW-Source: 2006-11/txt/msg00377.txt.bz2 On Monday 27 November 2006 17:03, Daniel Jacobowitz wrote: > I'd suggest that we don't need the fake "public" child for things of > struct/union (as opposed to class) type that are 100% public. We can't > reliably detect struct vs class because debug info is often lacking the > distinction, but union is easy. I don't know if this might break some > MI frontend though. But the "public" child isn't even documented. Documented or not, it seems Eclipse will break if we take it away. When opening a structure, code in org.eclipse.cdt.debug.mi.core.cdi.model.Variable.getChildren assumes that is you have real (non-fake) structure, then all children of it are fake. It means that if you have struct S { int i; }; S s; and create varobj V for 's' and 'i' becomes the immediate child of V, then Eclipse will think V.i is fake child. Amoung other thing it will think that expression corresponding to 'V.i' is 's' -- not 's.i'. I don't know what to do about it. The right way is to implement -var-info-path-expression and get all frontends to update, and then remove 'public' for structures that have only public fields. - Volodya