From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5080 invoked by alias); 11 Jul 2005 05:38:23 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 5057 invoked by uid 22791); 11 Jul 2005 05:38:15 -0000 Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 11 Jul 2005 05:38:15 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1DrqzY-0006qU-Qu for gdb@sources.redhat.com; Mon, 11 Jul 2005 07:38:08 +0200 Received: from zigzag.lvk.cs.msu.su ([158.250.17.23]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 11 Jul 2005 07:38:08 +0200 Received: from ghost by zigzag.lvk.cs.msu.su with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 11 Jul 2005 07:38:08 +0200 To: gdb@sources.redhat.com From: Vladimir Prus Subject: Re: Formatting of function pointer value Date: Mon, 11 Jul 2005 05:38:00 -0000 Message-ID: References: <20050708135810.GB17089@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.8.2 X-SW-Source: 2005-07/txt/msg00096.txt.bz2 Daniel Jacobowitz wrote: > On Fri, Jul 08, 2005 at 12:00:44PM +0400, Vladimir Prus wrote: >> >> Hello, >> consider the following snippet: >> >> B* p2 = (B*)0x12345678; >> int (*p3)(int) = (fp)0x000000AE; >> >> the value of p2 is printed like this: >> >> (gdb)info local >> .... >> p2 = (B *) 0xb8000540 >> >> >> the value of *p3 is printed like this: >> >> (gdb) print *p3 >> $1 = {int (int)} 0xb7ee6e9c <__DTOR_END__+4> >> >> I have a couple of questions: >> >> 1. Why in both cases the type of value is printed? There's already >> 'whatis' command. I've checked that code and it's printed >> unconditionally. As the result, a GDB frontend must strip the type. > > It is a feature, not a bug. Why is your frontend using the > command-line interface? Well, the debugger part in KDevelop was not written by me, so I don't know why command-line interface, and not MI is used. > DON'T do that! Use MI nowadays, please please > please. I'm sorry, but section 24 of gdb manual does not say why MI is better. Can you give the reasons? > The type is included because "print p2; $1 = 0x12345678" is very > uninformative; that's how we print integers, not pointers. I suppose that if I do "print p2" I have some idea what type of 'p2' is; I don't print program variables at random. - Volodya