From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18891 invoked by alias); 27 Jan 2006 00:47:09 -0000 Received: (qmail 18879 invoked by uid 22791); 27 Jan 2006 00:47:09 -0000 X-Spam-Check-By: sourceware.org Received: from xproxy.gmail.com (HELO xproxy.gmail.com) (66.249.82.199) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 27 Jan 2006 00:47:08 +0000 Received: by xproxy.gmail.com with SMTP id t11so313537wxc for ; Thu, 26 Jan 2006 16:47:06 -0800 (PST) Received: by 10.70.74.19 with SMTP id w19mr2923240wxa; Thu, 26 Jan 2006 16:47:06 -0800 (PST) Received: by 10.70.75.18 with HTTP; Thu, 26 Jan 2006 16:47:06 -0800 (PST) Message-ID: Date: Fri, 27 Jan 2006 08:15:00 -0000 From: Igor Khavkine To: gdb@sourceware.org, Daniel Jacobowitz Subject: Re: C99 variable length arrays In-Reply-To: <20060126233311.GA21429@nevyn.them.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_33760_228957.1138322826237" References: <20060126134926.GA3501@nevyn.them.org> <20060126233311.GA21429@nevyn.them.org> 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-01/txt/msg00291.txt.bz2 ------=_Part_33760_228957.1138322826237 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-length: 1441 On 1/26/06, Daniel Jacobowitz wrote: > On Thu, Jan 26, 2006 at 06:30:56PM -0500, Igor Khavkine wrote: > > On 1/26/06, Daniel Jacobowitz wrote: > > > The first thing to do is to write a small testcase, and post the > > > testcase along with the debugging output that your GCC generates > > > for it. > > > > There is a test case already in the GDB bug database (PR 1796, as I > > mentioned in my first message). What kind of debugging output should I > > post? Is there an option to make gcc dump the debugging info in human > > readable form? > > Not really - but you can run readelf -wi on the resulting object file. > I recommend you do this after linking to make sure relocations are > resolved. OK. I'm attaching a small test case, vla-bug.c. I compiled the object with `gcc -g -c vla-bug.c' and the executable with `gcc -g -o vla-bug vla-bug.c'. I then ran `readelf -wi' on the .o and the executable. I'm attaching all the relevant files. Note that I call the function test() with argument 3. This means that the local variable length array will have size 3. However, when run under GDB, GDB will think the array is only of size 2 (that's the size it always seems to assume for VLA's). Unfortunately, I can glimpse next to nothing from the readelf output. Can you tell whether GCC puts enough debugging info into the compiled code for GDB to get the size right at runtime? Thanks in advance. Igor ------=_Part_33760_228957.1138322826237 Content-Type: text/x-csrc; name=vla-bug.c; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="vla-bug.c" Content-length: 91 void test (int x) { int arr[x]; arr[0] = 1; } int main (void) { test (3); return 0; } ------=_Part_33760_228957.1138322826237 Content-Type: application/octet-stream; name=vla-bug.o.elf Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="vla-bug.o.elf" Content-length: 2334 The section .debug_info contains: Compilation Unit @ 0: Length: 215 Version: 2 Abbrev Offset: 0 Pointer Size: 4 <0>: Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_stmt_list : 0 DW_AT_high_pc : 0x4c DW_AT_low_pc : 0 DW_AT_name : vla-bug.c DW_AT_comp_dir : /home/igor/c/gdb-bug DW_AT_producer : GNU C 3.3.5 (Debian 1:3.3.5-13) DW_AT_language : 1 (ANSI C) <1><58>: Abbrev Number: 2 (DW_TAG_subprogram) DW_AT_sibling : <93> DW_AT_external : 1 DW_AT_name : test DW_AT_decl_file : 1 DW_AT_decl_line : 2 DW_AT_prototyped : 1 DW_AT_low_pc : 0 DW_AT_high_pc : 0x29 DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5) <2><70>: Abbrev Number: 3 (DW_TAG_formal_parameter) DW_AT_name : x DW_AT_decl_file : 1 DW_AT_decl_line : 1 DW_AT_type : <93> DW_AT_location : 2 byte block: 91 8 (DW_OP_fbreg: 8) <2><7c>: Abbrev Number: 4 (DW_TAG_variable) DW_AT_artificial : 1 DW_AT_type : DW_AT_location : 1 byte block: 50 (DW_OP_reg0) <2><84>: Abbrev Number: 5 (DW_TAG_variable) DW_AT_name : arr DW_AT_decl_file : 1 DW_AT_decl_line : 3 DW_AT_type : <9a> DW_AT_location : 2 byte block: 70 0 (DW_OP_breg0: 0) <1><93>: Abbrev Number: 6 (DW_TAG_base_type) DW_AT_name : int DW_AT_byte_size : 4 DW_AT_encoding : 5 (signed) <1><9a>: Abbrev Number: 7 (DW_TAG_array_type) DW_AT_sibling : DW_AT_type : <93> <2>: Abbrev Number: 8 (DW_TAG_subrange_type) DW_AT_type : DW_AT_upper_bound : <7c> <1>: Abbrev Number: 6 (DW_TAG_base_type) DW_AT_name : unsigned int DW_AT_byte_size : 4 DW_AT_encoding : 7 (unsigned) <1>: Abbrev Number: 9 (DW_TAG_const_type) DW_AT_type : <93> <1>: Abbrev Number: 10 (DW_TAG_subprogram) DW_AT_external : 1 DW_AT_name : main DW_AT_decl_file : 1 DW_AT_decl_line : 8 DW_AT_prototyped : 1 DW_AT_type : <93> DW_AT_low_pc : 0x29 DW_AT_high_pc : 0x4c DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5) ------=_Part_33760_228957.1138322826237 Content-Type: application/x-gzip; name=vla-bug.elf.gz Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vla-bug.elf.gz" Content-length: 7044 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 OQhDVQTD6X9pMPzi36Yf8c8ZswAA ------=_Part_33760_228957.1138322826237--