From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6159 invoked by alias); 10 Nov 2003 23:34:04 -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 6150 invoked from network); 10 Nov 2003 23:34:03 -0000 Received: from unknown (HELO zenia.home) (12.223.225.216) by sources.redhat.com with SMTP; 10 Nov 2003 23:34:03 -0000 Received: by zenia.home (Postfix, from userid 5433) id A898C20766; Mon, 10 Nov 2003 18:32:35 -0500 (EST) To: Kevin Nomura Cc: gdb@sources.redhat.com Subject: Re: problem printing enums as integers with dwarf2 References: <20031107232037.GK4286@bughouse.netapp.com> From: Jim Blandy Date: Mon, 10 Nov 2003 23:34:00 -0000 In-Reply-To: <20031107232037.GK4286@bughouse.netapp.com> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-11/txt/msg00084.txt.bz2 Not known to me, at least. Please go ahead and file a bug for this, and I'll take it. Kevin Nomura writes: > Before filing a bug I'd like to check if I'm missing > something obvious. A C enum is defined with elements > x0, x1, ..., x999 starting at 0 and incrementing naturally > with no "=" reassignments. It is compiled on Linux redhat 8 > (for example) which uses dwarf2 by default: gcc -g enum.c > > x129 is printed as an integer: > > (gdb) p/d x129 > $2 = -127 > > I expected 129. > > Compile with stabs explicitly and get the expected behaviour: > > [siml4]$ gcc -gstabs enum.c > [siml4]$ gdb a.out > GNU gdb Red Hat Linux (5.2.1-4) > Copyright 2002 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you are > welcome to change it and/or distribute copies of it under certain conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for details. > This GDB was configured as "i386-redhat-linux"... > (gdb) p x129 > $1 = x129 > (gdb) p/d x129 > $2 = 129 > (gdb) > > Here is a testcase generator in perl to declare the 1000 element enum. > > > > #!/usr/bin/perl -w > use strict > > print "enum e {\n"; > > for ($i=0; $i<1000; $i++) { printf "\tx%d,\n", $i } > print < }; > > main() > { > printf ("%d\\n", x129); > } > EOF