mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-28 22:21:26 +08:00
From Tom Tromey <tromey@cygnus.com> and Keith Seitz <?>:
* minsyms.c: #include <ctype.h>, for msymbol_hash_iw. (compact_minimal_symbols): Added `objfile' argument. Put symbols in the objfile's hash table. (install_minimal_symbols): Put symbols in the objfile's demangled hash table. (lookup_minimal_symbol): Use hash table to find symbol in objfile. (msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): New functions. (prim_record_minimal_symbol_and_info): Initialize the hash link fields of the new minimal symbol. * symtab.h (struct minimal_symbol): New fields `hash_next', `demangled_hash_next'. (msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): Declare. * objfiles.h (MINIMAL_SYMBOL_HASH_SIZE): New define. (struct objfile): New fields `msymbol_hash', `msymbol_demangled_hash'.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* Definitions for symbol file management in GDB.
|
||||
Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1999 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
@ -200,6 +200,9 @@ struct objstats
|
||||
extern void print_objfile_statistics PARAMS ((void));
|
||||
extern void print_symbol_bcache_statistics PARAMS ((void));
|
||||
|
||||
/* Number of entries in the minimal symbol hash table. */
|
||||
#define MINIMAL_SYMBOL_HASH_SIZE 349
|
||||
|
||||
/* Master structure for keeping track of each file from which
|
||||
gdb reads symbols. There are several ways these get allocated: 1.
|
||||
The main symbol file, symfile_objfile, set by the symbol-file command,
|
||||
@ -292,6 +295,15 @@ struct objfile
|
||||
struct minimal_symbol *msymbols;
|
||||
int minimal_symbol_count;
|
||||
|
||||
/* This is a hash table used to index the minimal symbols by name. */
|
||||
|
||||
struct minimal_symbol *msymbol_hash[MINIMAL_SYMBOL_HASH_SIZE];
|
||||
|
||||
/* This hash table is used to index the minimal symbols by their
|
||||
demangled names. */
|
||||
|
||||
struct minimal_symbol *msymbol_demangled_hash[MINIMAL_SYMBOL_HASH_SIZE];
|
||||
|
||||
/* For object file formats which don't specify fundamental types, gdb
|
||||
can create such types. For now, it maintains a vector of pointers
|
||||
to these internally created fundamental types on a per objfile basis,
|
||||
|
Reference in New Issue
Block a user