/* 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.
{
CORE_ADDR addr;
char *name;
+
+ /* SECTINDEX must be valid for associated BFD if ADDR is not zero. */
int sectindex;
} other[1];
};
/* This function should read the linetable from the objfile when
the line table cannot be read while processing the debugging
information. */
+
void (*sym_read_linetable) (void);
+ /* Relocate the contents of a debug section SECTP. The
+ contents are stored in BUF if it is non-NULL, or returned in a
+ malloc'd buffer otherwise. */
+
+ bfd_byte *(*sym_relocate) (struct objfile *, asection *sectp, bfd_byte *buf);
+
/* Finds the next struct sym_fns. They are allocated and
initialized in whatever module implements the functions pointed
to; an initializer calls add_symtab_fns to add them to the global
};
+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. */
extern struct symfile_segment_data *default_symfile_segments (bfd *abfd);
+/* The default version of sym_fns.sym_relocate for readers that don't
+ do anything special. */
+
+extern bfd_byte *default_symfile_relocate (struct objfile *objfile,
+ asection *sectp, bfd_byte *buf);
+
extern void extend_psymbol_list (struct psymbol_allocation_list *,
struct objfile *);
extern struct symtab *allocate_symtab (char *, struct objfile *);
-extern int free_named_symtabs (char *);
-
extern void add_symtab_fns (struct sym_fns *);
/* This enum encodes bit-flags passed as ADD_FLAGS parameter to
struct section_addr_info *,
int);
-extern void symbol_file_add_separate (bfd *bfd, int symfile_flags,
- struct objfile *objfile);
+extern void symbol_file_add_separate (bfd *, int, struct objfile *);
-extern char *find_separate_debug_file_by_debuglink (struct objfile *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. */
/* Default overlay update function. */
extern void simple_overlay_update (struct obj_section *);
-extern bfd_byte *symfile_relocate_debug_section (bfd *abfd, asection *sectp,
- bfd_byte * buf);
+extern bfd_byte *symfile_relocate_debug_section (struct objfile *, asection *,
+ bfd_byte *);
extern int symfile_map_offsets_to_segments (bfd *,
struct symfile_segment_data *,