From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18553 invoked by alias); 26 Oct 2002 01:05: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 18539 invoked from network); 26 Oct 2002 01:05:17 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 26 Oct 2002 01:05:17 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id g9Q0hew17220 for ; Fri, 25 Oct 2002 20:43:40 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9Q15Hf30104 for ; Fri, 25 Oct 2002 21:05:17 -0400 Received: from localhost.redhat.com (IDENT:LuhNtuDa82CyTEEDS26rk4up6oBWNMG4@tooth.toronto.redhat.com [172.16.14.29]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id g9Q15F030089; Fri, 25 Oct 2002 21:05:15 -0400 Received: by localhost.redhat.com (Postfix, from userid 469) id 87215FF79; Fri, 25 Oct 2002 21:02:32 -0400 (EDT) From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15801.59816.307534.951655@localhost.redhat.com> Date: Fri, 25 Oct 2002 18:05:00 -0000 To: David Carlton Cc: gdb-patches@sources.redhat.com, Elena Zannoni , Jim Blandy Subject: Re: [patch] delete find_addr_symbol In-Reply-To: References: X-SW-Source: 2002-10/txt/msg00556.txt.bz2 David Carlton writes: > In my eternal quest to tame symtab.c, I just started looking at the > commented-out definition of find_addr_symbol. Looking through > ChangeLogs, it turns out that this function was in existence for 2 > months in 1994, has been commented out for the following 8 years, and > has a big honking bug in the middle of it, though to be fair the bug > is at least commented: > > /* FIXME -- we should pull in all the psymtabs, too! */ > > So the time has come to bid that code adieu, I think. This patch > seems obvious: speak up if you have any sentimental attachment to the > code. Otherwise, I'll delete it soon after a compile/check has > finished to make sure I'm not doing anything stupid somehow. > Sniff, sniff. Yes kill it. Thanks! Elena > David Carlton > carlton@math.stanford.edu > > 2002-10-25 David Carlton > > * symtab.c (find_addr_symbol): Delete. (It was already commented > out.) > * symtab.h: Delete prototype for find_addr_symbol. > > Index: symtab.c > =================================================================== > RCS file: /cvs/src/src/gdb/symtab.c,v > retrieving revision 1.74 > diff -u -p -r1.74 symtab.c > --- symtab.c 24 Oct 2002 21:02:53 -0000 1.74 > +++ symtab.c 25 Oct 2002 23:21:53 -0000 > @@ -1692,94 +1692,6 @@ find_pc_symtab (CORE_ADDR pc) > } > > > -#if 0 > - > -/* Find the closest symbol value (of any sort -- function or variable) > - for a given address value. Slow but complete. (currently unused, > - mainly because it is too slow. We could fix it if each symtab and > - psymtab had contained in it the addresses ranges of each of its > - sections, which also would be required to make things like "info > - line *0x2345" cause psymtabs to be converted to symtabs). */ > - > -struct symbol * > -find_addr_symbol (CORE_ADDR addr, struct symtab **symtabp, CORE_ADDR *symaddrp) > -{ > - struct symtab *symtab, *best_symtab; > - struct objfile *objfile; > - register int bot, top; > - register struct symbol *sym; > - register CORE_ADDR sym_addr; > - struct block *block; > - int blocknum; > - > - /* Info on best symbol seen so far */ > - > - register CORE_ADDR best_sym_addr = 0; > - struct symbol *best_sym = 0; > - > - /* FIXME -- we should pull in all the psymtabs, too! */ > - ALL_SYMTABS (objfile, symtab) > - { > - /* Search the global and static blocks in this symtab for > - the closest symbol-address to the desired address. */ > - > - for (blocknum = GLOBAL_BLOCK; blocknum <= STATIC_BLOCK; blocknum++) > - { > - QUIT; > - block = BLOCKVECTOR_BLOCK (BLOCKVECTOR (symtab), blocknum); > - ALL_BLOCK_SYMBOLS (block, bot, sym) > - { > - switch (SYMBOL_CLASS (sym)) > - { > - case LOC_STATIC: > - case LOC_LABEL: > - sym_addr = SYMBOL_VALUE_ADDRESS (sym); > - break; > - > - case LOC_INDIRECT: > - sym_addr = SYMBOL_VALUE_ADDRESS (sym); > - /* An indirect symbol really lives at *sym_addr, > - * so an indirection needs to be done. > - * However, I am leaving this commented out because it's > - * expensive, and it's possible that symbolization > - * could be done without an active process (in > - * case this read_memory will fail). RT > - sym_addr = read_memory_unsigned_integer > - (sym_addr, TARGET_PTR_BIT / TARGET_CHAR_BIT); > - */ > - break; > - > - case LOC_BLOCK: > - sym_addr = BLOCK_START (SYMBOL_BLOCK_VALUE (sym)); > - break; > - > - default: > - continue; > - } > - > - if (sym_addr <= addr) > - if (sym_addr > best_sym_addr) > - { > - /* Quit if we found an exact match. */ > - best_sym = sym; > - best_sym_addr = sym_addr; > - best_symtab = symtab; > - if (sym_addr == addr) > - goto done; > - } > - } > - } > - } > - > -done: > - if (symtabp) > - *symtabp = best_symtab; > - if (symaddrp) > - *symaddrp = best_sym_addr; > - return best_sym; > -} > -#endif /* 0 */ > - > /* Find the source file and line number for a given PC value and SECTION. > Return a structure containing a symtab pointer, a line number, > and a pc range for the entire source line. > Index: symtab.h > =================================================================== > RCS file: /cvs/src/src/gdb/symtab.h,v > retrieving revision 1.50 > diff -u -p -r1.50 symtab.h > --- symtab.h 24 Oct 2002 21:02:53 -0000 1.50 > +++ symtab.h 25 Oct 2002 23:21:44 -0000 > @@ -1261,13 +1261,6 @@ extern struct symtab_and_line find_pc_li > > extern struct symtab_and_line find_pc_sect_line (CORE_ADDR, asection *, int); > > -/* Given an address, return the nearest symbol at or below it in memory. > - Optionally return the symtab it's from through 2nd arg, and the > - address in inferior memory of the symbol through 3rd arg. */ > - > -extern struct symbol *find_addr_symbol (CORE_ADDR, struct symtab **, > - CORE_ADDR *); > - > /* Given a symtab and line number, return the pc there. */ > > extern int find_line_pc (struct symtab *, int, CORE_ADDR *);