summaryrefslogtreecommitdiff
path: root/gdb/symtab.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/symtab.h')
-rw-r--r--gdb/symtab.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/gdb/symtab.h b/gdb/symtab.h
index d651209ecdb..3fb21fc4549 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -826,6 +826,26 @@ struct section_offsets
(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. */
@@ -1399,7 +1419,7 @@ extern void
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, int, int));
/* source.c */