From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22863 invoked by alias); 18 Nov 2004 22:38:15 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22753 invoked from network); 18 Nov 2004 22:38:05 -0000 Received: from unknown (HELO walton.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org with SMTP; 18 Nov 2004 22:38:05 -0000 Received: from elgar.sibelius.xs4all.nl (elgar.sibelius.xs4all.nl [192.168.0.2]) by walton.sibelius.xs4all.nl (8.13.0/8.13.0) with ESMTP id iAIMbwOJ008089; Thu, 18 Nov 2004 23:37:59 +0100 (CET) Received: from elgar.sibelius.xs4all.nl (localhost [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.12.6p3/8.12.6) with ESMTP id iAIMbwx6001219; Thu, 18 Nov 2004 23:37:58 +0100 (CET) (envelope-from kettenis@elgar.sibelius.xs4all.nl) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.12.6p3/8.12.6/Submit) id iAIMbwtg001216; Thu, 18 Nov 2004 23:37:58 +0100 (CET) Date: Thu, 18 Nov 2004 22:38:00 -0000 Message-Id: <200411182237.iAIMbwtg001216@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: jimb@redhat.com CC: ezannoni@redhat.com, gdb-patches@sources.redhat.com In-reply-to: (message from Jim Blandy on 09 Nov 2004 14:53:03 -0500) Subject: Re: [RFA] Don't apply line-number tweaks for non-GCC compilers References: <16752 dot 3082 dot 255249 dot 837515 at localhost dot redhat dot com> <200410192215.i9JMF2NS014623@elgar.sibelius.xs4all.nl> <200411091315.iA9DFrdB090647@elgar.sibelius.xs4all.nl> X-SW-Source: 2004-11/txt/msg00386.txt.bz2 From: Jim Blandy Date: 09 Nov 2004 14:53:03 -0500 For what it's worth, this change implements the suggestion I made. I went ahead and checked this in. Mark > Index: ChangeLog > from Mark Kettenis > > * dbxread.c (process_one_symbol): Do not adjust address of first > N_SLINE stab for a function for code generated by non-GCC > compilers. > > > Index: dbxread.c > =================================================================== > RCS file: /cvs/src/src/gdb/dbxread.c,v > retrieving revision 1.74 > diff -u -p -r1.74 dbxread.c > --- dbxread.c 11 Sep 2004 10:24:46 -0000 1.74 > +++ dbxread.c 19 Oct 2004 20:45:53 -0000 > @@ -2927,11 +2927,26 @@ process_one_symbol (int type, int desc, > /* Relocate for dynamic loading and for ELF acc fn-relative syms. */ > valu += function_start_offset; > > - /* If this is the first SLINE note in the function, record it at > - the start of the function instead of at the listed location. */ > + /* GCC 2.95.3 emits the first N_SLINE stab somwehere in the > + middle of the prologue instead of right at the start of the > + function. To deal with this we record the address for the > + first N_SLINE stab to be the start of the function instead of > + the listed location. We really shouldn't to this. When > + compiling with optimization, this first N_SLINE stab might be > + optimized away. Other (non-GCC) compilers don't emit this > + stab at all. There is no real harm in having an extra > + numbered line, although it can be a bit annoying for the > + user. However, it totally screws up our testsuite. > + > + So for now, keep adjusting the address of the first N_SLINE > + stab, but only for code compiled with GCC. */ > + > if (within_function && sline_found_in_function == 0) > { > - record_line (current_subfile, desc, last_function_start); > + if (processing_gcc_compilation == 2) > + record_line (current_subfile, desc, last_function_start); > + else > + record_line (current_subfile, desc, valu); > sline_found_in_function = 1; > } > else