diff options
Diffstat (limited to 'gdb/objfiles.c')
-rw-r--r-- | gdb/objfiles.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 1cf5aee..e29b3a7 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -105,13 +105,6 @@ get_objfile_pspace_data (struct program_space *pspace) return info; } -/* Records whether any objfiles appeared or disappeared since we last updated - address to obj section map. */ - -/* Locate all mappable sections of a BFD file. - objfile_p_char is a char * to get it through - bfd_map_over_sections; we cast it back to its proper type. */ - /* Called via bfd_map_over_sections to build up the section table that the objfile references. The objfile contains pointers to the start of the table (objfile->sections) and to the first location after @@ -119,19 +112,18 @@ get_objfile_pspace_data (struct program_space *pspace) static void add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect, - void *objfile_p_char) + void *objfilep) { - struct objfile *objfile = (struct objfile *) objfile_p_char; + struct objfile *objfile = (struct objfile *) objfilep; struct obj_section section; flagword aflag; aflag = bfd_get_section_flags (abfd, asect); - if (!(aflag & SEC_ALLOC)) return; - - if (0 == bfd_section_size (abfd, asect)) + if (bfd_section_size (abfd, asect) == 0) return; + section.objfile = objfile; section.the_bfd_section = asect; section.ovly_mapped = 0; @@ -142,11 +134,9 @@ add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect, } /* Builds a section table for OBJFILE. - Returns 0 if OK, 1 on error (in which case bfd_error contains the - error). Note that while we are building the table, which goes into the - psymbol obstack, we hijack the sections_end pointer to instead hold + objfile obstack, we hijack the sections_end pointer to instead hold a count of the number of sections. When bfd_map_over_sections returns, this count is used to compute the pointer to the end of the sections table, which then overwrites the count. @@ -154,10 +144,10 @@ add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect, Also note that the OFFSET and OVLY_MAPPED in each table entry are initialized to zero. - Also note that if anything else writes to the psymbol obstack while + Also note that if anything else writes to the objfile obstack while we are building the table, we're pretty much hosed. */ -int +void build_objfile_section_table (struct objfile *objfile) { objfile->sections_end = 0; @@ -165,7 +155,6 @@ build_objfile_section_table (struct objfile *objfile) add_to_objfile_sections, (void *) objfile); objfile->sections = obstack_finish (&objfile->objfile_obstack); objfile->sections_end = objfile->sections + (size_t) objfile->sections_end; - return (0); } /* Given a pointer to an initialized bfd (ABFD) and some flag bits @@ -216,12 +205,7 @@ allocate_objfile (bfd *abfd, int flags) objfile->mtime = bfd_get_mtime (abfd); /* Build section table. */ - - if (build_objfile_section_table (objfile)) - { - error (_("Can't find the file sections in `%s': %s"), - objfile->name, bfd_errmsg (bfd_get_error ())); - } + build_objfile_section_table (objfile); } else { |