| Index: gdb/objfiles.h
|
| diff --git a/gdb/objfiles.h b/gdb/objfiles.h
|
| index aba179149814928ab88d7638d0a020806420ddf6..01c3aead713119a31a95fe410de59b377016c3d0 100644
|
| --- a/gdb/objfiles.h
|
| +++ b/gdb/objfiles.h
|
| @@ -327,13 +327,13 @@ struct objfile
|
| unsigned num_data;
|
|
|
| /* Set of relocation offsets to apply to each section.
|
| - Currently on the objfile_obstack (which makes no sense, but I'm
|
| - not sure it's harming anything).
|
| + The table is indexed by the_bfd_section->index, thus it is generally
|
| + as large as the number of sections in the binary.
|
| + The table is stored on the objfile_obstack.
|
|
|
| These offsets indicate that all symbols (including partial and
|
| minimal symbols) which have been read have been relocated by this
|
| - much. Symbols which are yet to be read need to be relocated by
|
| - it. */
|
| + much. Symbols which are yet to be read need to be relocated by it. */
|
|
|
| struct section_offsets *section_offsets;
|
| int num_sections;
|
| @@ -354,12 +354,11 @@ struct objfile
|
| among other things, is used to map pc addresses into sections.
|
| SECTIONS points to the first entry in the table, and
|
| SECTIONS_END points to the first location past the last entry
|
| - in the table. Currently the table is stored on the
|
| - objfile_obstack (which makes no sense, but I'm not sure it's
|
| - harming anything). */
|
| + in the table. The table is stored on the objfile_obstack.
|
| + There is no particular order to the sections in this table, and it
|
| + only contains sections we care about (e.g. non-empty, SEC_ALLOC). */
|
|
|
| - struct obj_section
|
| - *sections, *sections_end;
|
| + struct obj_section *sections, *sections_end;
|
|
|
| /* GDB allows to have debug symbols in separate object files. This is
|
| used by .gnu_debuglink, ELF build id note and Mach-O OSO.
|
| @@ -381,7 +380,7 @@ struct objfile
|
| struct objfile *separate_debug_objfile_link;
|
|
|
| /* Place to stash various statistics about this objfile. */
|
| - OBJSTATS;
|
| + OBJSTATS;
|
|
|
| /* A linked list of symbols created when reading template types or
|
| function templates. These symbols are not stored in any symbol
|
| @@ -450,7 +449,7 @@ extern int entry_point_address_query (CORE_ADDR *entry_p);
|
|
|
| extern CORE_ADDR entry_point_address (void);
|
|
|
| -extern int build_objfile_section_table (struct objfile *);
|
| +extern void build_objfile_section_table (struct objfile *);
|
|
|
| extern void terminate_minimal_symbol_table (struct objfile *objfile);
|
|
|
| @@ -526,6 +525,11 @@ extern void *objfile_data (struct objfile *objfile,
|
| extern struct bfd *gdb_bfd_ref (struct bfd *abfd);
|
| extern void gdb_bfd_unref (struct bfd *abfd);
|
| extern int gdb_bfd_close_or_warn (struct bfd *abfd);
|
| +
|
| +extern void default_iterate_over_objfiles_in_search_order
|
| + (struct gdbarch *gdbarch,
|
| + iterate_over_objfiles_in_search_order_cb_ftype *cb,
|
| + void *cb_data, struct objfile *current_objfile);
|
|
|
|
|
| /* Traverse all object files in the current program space.
|
| @@ -557,6 +561,12 @@ extern int gdb_bfd_close_or_warn (struct bfd *abfd);
|
| #define ALL_OBJFILE_SYMTABS(objfile, s) \
|
| for ((s) = (objfile) -> symtabs; (s) != NULL; (s) = (s) -> next)
|
|
|
| +/* Traverse all primary symtabs in one objfile. */
|
| +
|
| +#define ALL_OBJFILE_PRIMARY_SYMTABS(objfile, s) \
|
| + ALL_OBJFILE_SYMTABS ((objfile), (s)) \
|
| + if ((s)->primary)
|
| +
|
| /* Traverse all minimal symbols in one objfile. */
|
|
|
| #define ALL_OBJFILE_MSYMBOLS(objfile, m) \
|
| @@ -579,13 +589,11 @@ extern int gdb_bfd_close_or_warn (struct bfd *abfd);
|
|
|
| #define ALL_PRIMARY_SYMTABS(objfile, s) \
|
| ALL_OBJFILES (objfile) \
|
| - ALL_OBJFILE_SYMTABS (objfile, s) \
|
| - if ((s)->primary)
|
| + ALL_OBJFILE_PRIMARY_SYMTABS (objfile, s)
|
|
|
| #define ALL_PSPACE_PRIMARY_SYMTABS(pspace, objfile, s) \
|
| ALL_PSPACE_OBJFILES (ss, objfile) \
|
| - ALL_OBJFILE_SYMTABS (objfile, s) \
|
| - if ((s)->primary)
|
| + ALL_OBJFILE_PRIMARY_SYMTABS (objfile, s)
|
|
|
| /* Traverse all minimal symbols in all objfiles in the current symbol
|
| space. */
|
|
|