aboutsummaryrefslogtreecommitdiff
path: root/gdb/objfiles.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r--gdb/objfiles.h35
1 files changed, 29 insertions, 6 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 3cc5de1..3912999 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -114,16 +114,39 @@ struct entry_info
};
-/* This structure is used to map pc values into sections. Note that
- offset is currently target independent and is redundant to the
- section_offsets field in the objfile struct. FIXME. */
+/* Sections in an objfile.
+
+ It is strange that we have both this notion of "sections"
+ and the one used by section_offsets. Section as used
+ here, (currently at least) means a BFD section, and the sections
+ are set up from the BFD sections in allocate_objfile.
+
+ The sections in section_offsets have their meaning determined by
+ the symbol format, and they are set up by the sym_offsets function
+ for that symbol file format.
+
+ I'm not sure this could or should be changed, however. */
struct obj_section {
CORE_ADDR addr; /* lowest address in section */
CORE_ADDR endaddr; /* 1+highest address in section */
- CORE_ADDR offset; /* offset between (end)addr and actual
- memory addresses. */
+
+ /* This field is being used for nefarious purposes by syms_from_objfile.
+ It is said to be redundant with section_offsets; it's not really being
+ used that way, however, it's some sort of hack I don't understand
+ and am not going to try to eliminate (yet, anyway). FIXME.
+
+ It was documented as "offset between (end)addr and actual memory
+ addresses", but that's not true; addr & endaddr are actual memory
+ addresses. */
+ CORE_ADDR offset;
+
sec_ptr sec_ptr; /* BFD section pointer */
+
+ /* Objfile this section is part of. Not currently used, but I'm sure
+ that someone will want the bfd that the sec_ptr goes with or something
+ like that before long. */
+ struct objfile *objfile;
};
/* Master structure for keeping track of each input file from which
@@ -353,7 +376,7 @@ have_full_symbols PARAMS ((void));
extern int
have_minimal_symbols PARAMS ((void));
-extern sec_ptr
+extern struct obj_section *
find_pc_section PARAMS((CORE_ADDR pc));
/* Traverse all object files. ALL_OBJFILES_SAFE works even if you delete