From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7969 invoked by alias); 11 Jul 2002 02:08:18 -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 7962 invoked from network); 11 Jul 2002 02:08:17 -0000 Received: from unknown (HELO mail-out2.apple.com) (17.254.0.51) by sources.redhat.com with SMTP; 11 Jul 2002 02:08:17 -0000 Received: from mailgate1.apple.com (A17-128-100-225.apple.com [17.128.100.225]) by mail-out2.apple.com (8.11.3/8.11.3) with ESMTP id g6B28HA17823 for ; Wed, 10 Jul 2002 19:08:17 -0700 (PDT) Received: from scv1.apple.com (scv1.apple.com) by mailgate1.apple.com (Content Technologies SMTPRS 4.2.1) with ESMTP id for ; Wed, 10 Jul 2002 19:07:39 -0700 Received: from localhost (inghji.apple.com [17.201.22.240]) by scv1.apple.com (8.11.3/8.11.3) with ESMTP id g6B28Gl01901 for ; Wed, 10 Jul 2002 19:08:16 -0700 (PDT) Date: Wed, 10 Jul 2002 19:08:00 -0000 Mime-Version: 1.0 (Apple Message framework v533) Content-Type: text/plain; charset=US-ASCII; format=flowed Subject: [patch] Fix to processing end of function stab in dbxread.c From: Jim Ingham To: gdb-patches@sources.redhat.com Content-Transfer-Encoding: 7bit Message-Id: <10111A6F-9473-11D6-AD3A-00039379E320@apple.com> X-SW-Source: 2002-07/txt/msg00221.txt.bz2 Index: dbxread.c =================================================================== RCS file: /cvs/src/src/gdb/dbxread.c,v retrieving revision 1.33 diff -c -w -r1.33 dbxread.c *** dbxread.c 10 May 2002 07:32:50 -0000 1.33 --- dbxread.c 11 Jul 2002 01:58:29 -0000 *************** Hi, all... Fred added an extra record_line call which closes off the last SLINE in a function when we come across the end of function N_FUN stab. This was a good thing, but unfortunately, he used function_start_offset, which on most systems is just the offset to the TEXT section (the exception being Solaris, where is actually is the real function start). He really meant to use last_function_start, which is the real address of the last N_FUN stab seen. I also fixed the comment before sline_found_in_function to accord with its current usage, since the old comment is wrong. We set sline_found_in_function = 0 at the same time we set last_function_start, but then we set it to 1 when we see the FIRST SLINE in a function, but last_function_start is still good after that. And nobody ever checks it to see if they should use last_function_start or not... *** 2761,2768 **** static CORE_ADDR last_function_start; /* If this is nonzero, we've seen an N_SLINE since the start of the current ! function. Initialized to nonzero to assure that last_function_start ! is never used uninitialized. */ static int sline_found_in_function = 1; /* If this is nonzero, we've seen a non-gcc N_OPT symbol for this source --- 2761,2768 ---- static CORE_ADDR last_function_start; /* If this is nonzero, we've seen an N_SLINE since the start of the current ! function. We use this to tell us to move the first sline to the beginning ! of the function regardless of what its given value is. */ static int sline_found_in_function = 1; /* If this is nonzero, we've seen a non-gcc N_OPT symbol for this source *************** *** 2799,2805 **** { /* This N_FUN marks the end of a function. This closes off the current block. */ ! record_line (current_subfile, 0, function_start_offset + valu); within_function = 0; new = pop_context (); --- 2799,2805 ---- { /* This N_FUN marks the end of a function. This closes off the current block. */ ! record_line (current_subfile, 0, last_function_start + valu); within_function = 0; new = pop_context (); Jim -- Jim Ingham jingham@apple.com Developer Tools - gdb Apple Computer