/* Definitions for reading symbol files into GDB.
Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009
+ 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GDB.
void (*sym_init) (struct objfile *);
- /* sym_read (objfile, mainline) Reads a symbol file into a psymtab
+ /* sym_read (objfile, symfile_flags) Reads a symbol file into a psymtab
(or possibly a symtab). OBJFILE is the objfile struct for the
- file we are reading. MAINLINE is 1 if this is the main symbol
- table being read, and 0 if a secondary symbol file (e.g. shared
- library or dynamically loaded file) is being read. */
+ file we are reading. SYMFILE_FLAGS are the flags passed to
+ symbol_file_add & co. */
void (*sym_read) (struct objfile *, int);
};
+extern struct section_addr_info *
+ build_section_addr_info_from_objfile (const struct objfile *objfile);
+
+extern void relative_addr_info_to_section_offsets
+ (struct section_offsets *section_offsets, int num_sections,
+ struct section_addr_info *addrs);
+
+extern void addr_info_make_relative (struct section_addr_info *addrs,
+ bfd *abfd);
+
/* The default version of sym_fns.sym_offsets for readers that don't
do anything special. */
/* #include "demangle.h" */
extern const
-struct partial_symbol *add_psymbol_to_list (char *, int, domain_enum,
+struct partial_symbol *add_psymbol_to_list (char *, int, int, domain_enum,
enum address_class,
struct psymbol_allocation_list *,
long, CORE_ADDR,
extern void add_symtab_fns (struct sym_fns *);
+/* This enum encodes bit-flags passed as ADD_FLAGS parameter to
+ syms_from_objfile, symbol_file_add, etc. */
+
+enum symfile_add_flags
+ {
+ /* Be chatty about what you are doing. */
+ SYMFILE_VERBOSE = 1 << 1,
+
+ /* This is the main symbol file (as opposed to symbol file for dynamically
+ loaded code). */
+ SYMFILE_MAINLINE = 1 << 2,
+
+ /* Do not call breakpoint_re_set when adding this symbol file. */
+ SYMFILE_DEFER_BP_RESET = 1 << 3
+ };
+
extern void syms_from_objfile (struct objfile *,
struct section_addr_info *,
- struct section_offsets *, int, int, int);
+ struct section_offsets *, int, int);
-extern void new_symfile_objfile (struct objfile *, int, int);
+extern void new_symfile_objfile (struct objfile *, int);
extern struct objfile *symbol_file_add (char *, int,
- struct section_addr_info *, int, int);
+ struct section_addr_info *, int);
extern struct objfile *symbol_file_add_from_bfd (bfd *, int,
struct section_addr_info *,
- int, int);
+ int);
+
+extern void symbol_file_add_separate (bfd *, int, struct objfile *);
+
+extern char *find_separate_debug_file_by_debuglink (struct objfile *);
/* Create a new section_addr_info, with room for NUM_SECTIONS. */
extern struct section_addr_info *alloc_section_addr_info (size_t
num_sections);
-/* Return a freshly allocated copy of ADDRS. The section names, if
- any, are also freshly allocated copies of those in ADDRS. */
-extern struct section_addr_info *(copy_section_addr_info
- (struct section_addr_info *addrs));
-
/* Build (allocate and populate) a section_addr_info struct from an
existing section table. */
extern struct partial_symtab *start_psymtab_common (struct objfile *,
struct section_offsets *,
- char *, CORE_ADDR,
+ const char *, CORE_ADDR,
struct partial_symbol **,
struct partial_symbol **);
/* Variables */
-/* If non-zero, gdb will notify the user when it is loading symbols
- from a file. This is almost always what users will want to have happen;
- but for programs with lots of dynamically linked libraries, the output
- can be more noise than signal. */
-
-extern int print_symbol_loading;
-
/* If non-zero, shared library symbols will be added automatically
when the inferior is created, new libraries are loaded, or when
attaching to the inferior. This is almost always what users will
extern void set_initial_language (void);
-extern struct partial_symtab *allocate_psymtab (char *, struct objfile *);
+extern struct partial_symtab *allocate_psymtab (const char *,
+ struct objfile *);
extern void discard_psymtab (struct partial_symtab *);
extern bfd *symfile_bfd_open (char *);
+extern bfd *bfd_open_maybe_remote (const char *);
+
extern int get_section_index (struct objfile *, char *);
/* Utility functions for overlay sections: */
extern int dwarf2_has_info (struct objfile *);
-extern void dwarf2_build_psymtabs (struct objfile *, int);
+extern void dwarf2_build_psymtabs (struct objfile *);
extern void dwarf2_build_frame_info (struct objfile *);
void dwarf2_free_objfile (struct objfile *);