2000-03-22 Mark Kettenis <kettenis@gnu.org>
[deliverable/binutils-gdb.git] / gdb / symfile.h
index aeeb28f1e06fbe6b211b1e82b95c4254d2c6b4da..5d3ee1de785a13d26dde9addc5e517ba244fbbbc 100644 (file)
@@ -54,6 +54,29 @@ struct psymbol_allocation_list
     int size;
   };
 
+/* 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.  This structure is also used by
+   solib.c to communicate the section addresses in shared objects to
+   symbol_file_add (). */
+#define MAX_SECTIONS 40
+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];
+};
+
 /* Structure to keep track of symbol reading functions for various
    object file types.  */
 
@@ -163,6 +186,23 @@ syms_from_objfile PARAMS ((struct objfile *, struct section_addr_info *, int, in
 extern void
 new_symfile_objfile PARAMS ((struct objfile *, int, int));
 
+extern struct objfile *
+symbol_file_add PARAMS ((char *, int, struct section_addr_info *, int, int));
+
+/* Build (allocate and populate) a section_addr_info struct from
+   an existing section table. */
+
+struct section_table;
+extern struct section_addr_info *
+build_section_addr_info_from_section_table (const struct section_table *start,
+                                            const struct section_table *end);
+
+/* Free all memory allocated by build_section_addr_info_from_section_table. */
+
+extern void
+free_section_addr_info (struct section_addr_info *);
+
+
 extern struct partial_symtab *
   start_psymtab_common PARAMS ((struct objfile *, struct section_offsets *,
                                char *, CORE_ADDR,
This page took 0.03593 seconds and 4 git commands to generate.