/* Symbol table definitions for GDB.
- Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
- Foundation, Inc.
+ Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
+ Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#if !defined (SYMTAB_H)
#define SYMTAB_H 1
struct blockvector;
struct axs_value;
struct agent_expr;
+enum language;
/* Some of the structures in this file are space critical.
The space-critical structures are:
struct block *block;
- char *bytes;
+ gdb_byte *bytes;
CORE_ADDR address;
LOC_INDIRECT,
/* The variable's address is computed by a set of location
- functions (see "struct location_funcs" below). */
+ functions (see "struct symbol_ops" below). */
LOC_COMPUTED,
/* Same as LOC_COMPUTED, but for function arguments. */
struct type *type;
+ /* The symbol table containing this symbol. This is the file
+ associated with LINE. */
+ struct symtab *symtab;
+
/* Domain code. */
ENUM_BITFIELD(domain_enum_tag) domain : 6;
#define SYMBOL_CLASS(symbol) (symbol)->aclass
#define SYMBOL_TYPE(symbol) (symbol)->type
#define SYMBOL_LINE(symbol) (symbol)->line
+#define SYMBOL_SYMTAB(symbol) (symbol)->symtab
#define SYMBOL_BASEREG(symbol) (symbol)->aux_value.basereg
#define SYMBOL_OBJFILE(symbol) (symbol)->aux_value.objfile
#define SYMBOL_OPS(symbol) (symbol)->ops
#define ANOFFSET(secoff, whichone) \
((whichone == -1) \
- ? (internal_error (__FILE__, __LINE__, "Section index is uninitialized"), -1) \
+ ? (internal_error (__FILE__, __LINE__, _("Section index is uninitialized")), -1) \
: secoff->offsets[whichone])
/* The size of a section_offsets table for N sections. */
char *debugformat;
- /* String of version information. May be zero. */
+ /* String of producer version information. May be zero. */
- char *version;
+ char *producer;
/* Full name of file as found by searching the source path.
NULL if not yet known. */
extern struct symtab *lookup_symtab (const char *);
-/* lookup a symbol by name (optional block, optional symtab) */
+/* lookup a symbol by name (optional block, optional symtab) in language */
+
+extern struct symbol *lookup_symbol_in_language (const char *,
+ const struct block *,
+ const domain_enum,
+ enum language,
+ int *,
+ struct symtab **);
+
+/* lookup a symbol by name (optional block, optional symtab)
+ in the current language */
extern struct symbol *lookup_symbol (const char *, const struct block *,
const domain_enum, int *,
extern struct symbol *lookup_symbol_global (const char *name,
const char *linkage_name,
+ const struct block *block,
const domain_enum domain,
struct symtab **symtab);
extern struct minimal_symbol
*lookup_solib_trampoline_symbol_by_pc (CORE_ADDR);
-extern CORE_ADDR find_solib_trampoline_target (CORE_ADDR);
+extern CORE_ADDR find_solib_trampoline_target (struct frame_info *, CORE_ADDR);
extern void init_minimal_symbol_collection (void);
/* symtab.c */
+int matching_bfd_sections (asection *, asection *);
+
extern struct partial_symtab *find_main_psymtab (void);
extern struct symtab *find_line_symtab (struct symtab *, int, int *, int *);
extern void set_main_name (const char *name);
extern /*const */ char *main_name (void);
-/* Global to indicate presence of HP-compiled objects,
- in particular, SOM executable file with SOM debug info
- Defined in symtab.c, used in hppa-tdep.c. */
-extern int deprecated_hp_som_som_object_present;
+/* Check global symbols in objfile. */
+struct symbol *lookup_global_symbol_from_objfile (const struct objfile *objfile,
+ const char *name,
+ const char *linkage_name,
+ const domain_enum domain,
+ struct symtab **symtab);
+
#endif /* !defined(SYMTAB_H) */