(sizeof (struct section_offsets) \
+ sizeof (((struct section_offsets *) 0)->offsets) * (SECT_OFF_MAX-1))
+/* Define an array of addresses to accommodate non-contiguous dynamic
+ loading of modules. This is for use when entering commands, so we
+ can keep track of the section names until we read the file and
+ can map them to bfd sections. */
+
+#define MAX_SECTIONS 12
+struct section_addr_info
+{
+ /* Sections whose names are always known to gdb. */
+ CORE_ADDR text_addr;
+ CORE_ADDR data_addr;
+ CORE_ADDR bss_addr;
+ /* Sections whose names are file format dependant. */
+ struct other_sections
+ {
+ CORE_ADDR addr;
+ char *name;
+ int sectindex;
+ } other[MAX_SECTIONS];
+};
/* Each source file or header is represented by a struct symtab.
These objects are chained through the `next' field. */
int block_line_section;
/* If several symtabs share a blockvector, exactly one of them
- should be designed the primary, so that the blockvector
+ should be designated the primary, so that the blockvector
is relocated exactly once by objfile_relocate. */
int primary;
#ifdef SOFUN_ADDRESS_MAYBE_MISSING
extern CORE_ADDR find_stab_function_addr PARAMS ((char *,
- struct partial_symtab *,
+ char *,
struct objfile *));
#endif
clear_solib PARAMS ((void));
extern struct objfile *
- symbol_file_add PARAMS ((char *, int, CORE_ADDR, int, int, int, int, int));
+symbol_file_add PARAMS ((char *, int, struct section_addr_info *, int, int));
/* source.c */