From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11129 invoked by alias); 12 Sep 2002 18:45:45 -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 11109 invoked from network); 12 Sep 2002 18:45:41 -0000 Received: from unknown (HELO mailsrv.otenet.gr) (195.170.0.5) by sources.redhat.com with SMTP; 12 Sep 2002 18:45:41 -0000 Received: from neutrino.particles.org (athe530-k036.otenet.gr [195.167.106.36]) by mailsrv.otenet.gr (8.12.4/8.12.4) with ESMTP id g8CIjTqt028892; Thu, 12 Sep 2002 21:45:30 +0300 (EEST) Received: (from anteater@localhost) by neutrino.particles.org (8.11.6/8.11.6) id g8CJ34S05029; Thu, 12 Sep 2002 22:03:04 +0300 Date: Thu, 12 Sep 2002 11:45:00 -0000 From: Elias Athanasopoulos To: Pierre Habraken Cc: binutils@sources.redhat.com, gdb@sources.redhat.com, Richard.Earnshaw@arm.com Subject: [PATCH] Re: Section .debug_info in object file Message-ID: <20020912220303.A1134@neutrino.particles.org> References: <3D806189.7A45FCBA@imag.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-7 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <3D806189.7A45FCBA@imag.fr>; from Pierre.Habraken@imag.fr on Thu, Sep 12, 2002 at 11:42:33AM +0200 X-SW-Source: 2002-09/txt/msg00121.txt.bz2 On Thu, Sep 12, 2002 at 11:42:33AM +0200, Pierre Habraken wrote: > A few days ago I posted a message about the fact that after launching > gdb to debug a program made of several C and Arm assembly language > files, the command 'info sources' lists C files only. I have attached a far from complete patch. It adds the first source file name in the .debug_info section. This patch will not help you much, but it solves a bug when both gcc and gas are used with dwarf2 support on. In the latter case readelf reports garbage such as: <0>: Abbrev Number: 1 (DW_TAG_compile_unit) DW_AT_stmt_list : 0 DW_AT_high_pc : 0x8048410 134513680 DW_AT_low_pc : 0x804841a 134513690 DW_AT_name : /home/anteater/test DW_AT_comp_dir : GNU AS 2.11.90.0.8 DW_AT_producer : €= DW_AT_language : 0 (Unknown: 0) I check that with gcc 2.96. Elias gas/ChangeLog 2002-09-12 Elias Athanasopoulos * dwarf2dbg.c (out_debug_abbrev): Add support for the DW_AT_name field. (out_debug_info): Likewise. --- dwarf2dbg.c.orig Thu Sep 12 20:05:23 2002 +++ dwarf2dbg.c Thu Sep 12 21:38:21 2002 @@ -1149,6 +1149,7 @@ out_abbrev (DW_AT_low_pc, DW_FORM_addr); out_abbrev (DW_AT_high_pc, DW_FORM_addr); } + out_abbrev (DW_AT_name, DW_FORM_string); out_abbrev (DW_AT_comp_dir, DW_FORM_string); out_abbrev (DW_AT_producer, DW_FORM_string); out_abbrev (DW_AT_language, DW_FORM_data2); @@ -1224,6 +1225,15 @@ emit_expr (&expr, sizeof_address); } + /* DW_AT_name + * FIXME: we only store the first source + * file, but we should add more records to + * .debug_info for each source file we assemble. + */ + len = strlen (files[1].filename) + 1; + p = frag_more (len); + memcpy (p, files[1].filename, len); + /* DW_AT_comp_dir */ comp_dir = getpwd (); len = strlen (comp_dir) + 1; -- http://gnewtellium.sourceforge.net MP3 is not a crime.