From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10766 invoked by alias); 17 Feb 2006 10:22:25 -0000 Received: (qmail 10753 invoked by uid 22791); 17 Feb 2006 10:22:24 -0000 X-Spam-Check-By: sourceware.org Received: from romy.inter.net.il (HELO romy.inter.net.il) (192.114.186.66) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 17 Feb 2006 10:22:21 +0000 Received: from HOME-C4E4A596F7 (IGLD-83-130-203-69.inter.net.il [83.130.203.69]) by romy.inter.net.il (MOS 3.7.3-GA) with ESMTP id DOV39898 (AUTH halo1); Fri, 17 Feb 2006 12:22:07 +0200 (IST) Date: Fri, 17 Feb 2006 10:22:00 -0000 Message-Id: From: Eli Zaretskii To: Vladimir Prus CC: gdb@sources.redhat.com In-reply-to: (message from Vladimir Prus on Fri, 17 Feb 2006 12:08:32 +0300) Subject: Re: MI: type prefixes for values Reply-to: Eli Zaretskii References: X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-02/txt/msg00164.txt.bz2 > From: Vladimir Prus > Date: Fri, 17 Feb 2006 12:08:32 +0300 > > some time ago I've raised the question why MI output sometimes prefixes > variable values with it's type. For example: > > -data-evaluate-expression *p3 > ^done,value="{int (int)} 0xb7ee6e9c <__DTOR_END__+4>" > (gdb) > > (note the {int (int)} part). The part does not make sense for a GUI and must > be removed by a specially written code. > > See: > > http://article.gmane.org/gmane.comp.gdb.devel/13477 And you were answered in that thread that this prefix is to show you the signature of a function to which p3 is a pointer. That is, GDB is telling you that p3 points to a function which accepts a single int argument and returns an int. > In the end, I've inquired why such prefixes cannot be dropped: > > http://article.gmane.org/gmane.comp.gdb.devel/13539 Are you saying that you don't want to show your users the fact that the pointed object is a function? > I imagine it's a simple matter of wrapping some code in > "ui_output_is_mi_like_p". Can somebody comment on this proposal? I think this will lose useful information. So for now I object. > Also, I note that gdb is currently inconsitent even within itself: > > (gdb) > -thread-select 2 > ^done,new-thread-id="2",frame={level="0",func="thread", > args=[{name="p",value="0x0"}],.......... > (gdb) > -stack-list-arguments 1 0 0 > ^done,stack-args=[frame={level="0", > args=[{name="p",value="(void *) 0x0"}]}] > > Note that first output has "0x0" as value of 'p', and the second has > "(void *)0x0". Also, the first one shows the func= part, the second doesn't. Looks like a bug to me: those two should both use the same code. > So, can a clear decision be made if the type prefixes has a place in MI, or > should be removed? At least for functions, they convey useful information.