From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6268 invoked by alias); 8 Jul 2005 13:58:44 -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 6140 invoked by uid 22791); 8 Jul 2005 13:58:28 -0000 Received: from nevyn.them.org (HELO nevyn.them.org) (66.93.172.17) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Fri, 08 Jul 2005 13:58:28 +0000 Received: from drow by nevyn.them.org with local (Exim 4.51) id 1DqtMo-0004UZ-Jm; Fri, 08 Jul 2005 09:58:10 -0400 Date: Fri, 08 Jul 2005 13:58:00 -0000 From: Daniel Jacobowitz To: Vladimir Prus Cc: gdb@sources.redhat.com Subject: Re: Formatting of function pointer value Message-ID: <20050708135810.GB17089@nevyn.them.org> Mail-Followup-To: Vladimir Prus , gdb@sources.redhat.com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.8i X-SW-Source: 2005-07/txt/msg00080.txt.bz2 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? DON'T do that! Use MI nowadays, please please please. The type is included because "print p2; $1 = 0x12345678" is very uninformative; that's how we print integers, not pointers. > 2. Why the type is enclosed in parenthesis in the first case, and in braces > in the second case? This entails additonal problems for GUI frontend, for > example, at the moment KDevelop thinks that the opening brace in the second > case starts a composite. Code addresses are treated specially. Same reason why you get a symbol name, I expect... -- Daniel Jacobowitz CodeSourcery, LLC