On 4/16/23 09:28, Tom Tromey wrote:
> I think objfile::sections makes sense as the name of the method to
> iterate over an objfile's sections, so this patch renames the existing
> field to objfile::sections_start in preparation for that.
I rather like this rename, tbh, because the related member is named
"sections_end". I like symmetry. :-)
Just one little comment...
> diff --git a/gdb/objfiles.h b/gdb/objfiles.h
> index 342aa09ac6a..0e326287907 100644
> --- a/gdb/objfiles.h
> +++ b/gdb/objfiles.h
> @@ -128,7 +128,7 @@ struct entry_info
> };
>
> #define ALL_OBJFILE_OSECTIONS(objfile, osect) \
> - for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
> + for (osect = objfile->sections_start; osect < objfile->sections_end; osect++) \
> if (osect->the_bfd_section == NULL) \
> { \
> /* Nothing. */ \
> @@ -722,7 +722,7 @@ struct objfile
> structure data is only valid for certain sections
> (e.g. non-empty, SEC_ALLOC). */
>
... about a comment!
The paragraph/comment here needs updating, I think:
"SECTIONS points to the first entry in the table, [...]"
Keith
> - struct obj_section *sections = nullptr;
> + struct obj_section *sections_start = nullptr;
> struct obj_section *sections_end = nullptr;
>
> /* GDB allows to have debug symbols in separate object files. This is
@@ -926,7 +926,7 @@ macho_symfile_offsets (struct objfile *objfile,
ALL_OBJFILE_OSECTIONS (objfile, osect)
{
const char *bfd_sect_name = osect->the_bfd_section->name;
- int sect_index = osect - objfile->sections;;
+ int sect_index = osect - objfile->sections_start;
if (startswith (bfd_sect_name, "LC_SEGMENT."))
bfd_sect_name += 11;
@@ -331,11 +331,11 @@ maint_obj_section_from_bfd_section (bfd *abfd,
asection *asection,
objfile *ofile)
{
- if (ofile->sections == nullptr)
+ if (ofile->sections_start == nullptr)
return nullptr;
obj_section *osect
- = &ofile->sections[gdb_bfd_section_index (abfd, asection)];
+ = &ofile->sections_start[gdb_bfd_section_index (abfd, asection)];
if (osect >= ofile->sections_end)
return nullptr;
@@ -375,7 +375,7 @@ maint_print_all_sections (const char *header, bfd *abfd, objfile *objfile,
if (objfile != nullptr)
{
- gdb_assert (objfile->sections != nullptr);
+ gdb_assert (objfile->sections_start != nullptr);
osect
= maint_obj_section_from_bfd_section (abfd, sect, objfile);
if (osect->the_bfd_section == nullptr)
@@ -264,7 +264,7 @@ add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect,
return;
}
- section = &objfile->sections[gdb_bfd_section_index (abfd, asect)];
+ section = &objfile->sections_start[gdb_bfd_section_index (abfd, asect)];
section->objfile = objfile;
section->the_bfd_section = asect;
section->ovly_mapped = 0;
@@ -280,10 +280,10 @@ build_objfile_section_table (struct objfile *objfile)
{
int count = gdb_bfd_count_sections (objfile->obfd.get ());
- objfile->sections = OBSTACK_CALLOC (&objfile->objfile_obstack,
- count,
- struct obj_section);
- objfile->sections_end = (objfile->sections + count);
+ objfile->sections_start = OBSTACK_CALLOC (&objfile->objfile_obstack,
+ count,
+ struct obj_section);
+ objfile->sections_end = (objfile->sections_start + count);
for (asection *sect : gdb_bfd_sections (objfile->obfd))
add_to_objfile_sections (objfile->obfd.get (), sect, objfile, 0);
@@ -660,7 +660,7 @@ objfile_relocate1 (struct objfile *objfile,
struct obj_section *s;
ALL_OBJFILE_OSECTIONS (objfile, s)
{
- int idx = s - objfile->sections;
+ int idx = s - objfile->sections_start;
exec_set_section_address (bfd_get_filename (objfile->obfd.get ()), idx,
s->addr ());
@@ -128,7 +128,7 @@ struct entry_info
};
#define ALL_OBJFILE_OSECTIONS(objfile, osect) \
- for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
+ for (osect = objfile->sections_start; osect < objfile->sections_end; osect++) \
if (osect->the_bfd_section == NULL) \
{ \
/* Nothing. */ \
@@ -722,7 +722,7 @@ struct objfile
structure data is only valid for certain sections
(e.g. non-empty, SEC_ALLOC). */
- struct obj_section *sections = nullptr;
+ struct obj_section *sections_start = nullptr;
struct obj_section *sections_end = nullptr;
/* GDB allows to have debug symbols in separate object files. This is
@@ -400,7 +400,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
if (objfile->sect_index_text != -1)
{
struct bfd_section *sect
- = objfile->sections[objfile->sect_index_text].the_bfd_section;
+ = objfile->sections_start[objfile->sect_index_text].the_bfd_section;
offsets[objfile->sect_index_text]
= info->text_addr + sect->filepos - bfd_section_vma (sect);
@@ -411,7 +411,7 @@ solib_aix_get_section_offsets (struct objfile *objfile,
if (objfile->sect_index_data != -1)
{
struct bfd_section *sect
- = objfile->sections[objfile->sect_index_data].the_bfd_section;
+ = objfile->sections_start[objfile->sect_index_data].the_bfd_section;
offsets[objfile->sect_index_data]
= info->data_addr - bfd_section_vma (sect);
@@ -822,7 +822,7 @@ dsbt_relocate_main_executable (void)
int osect_idx;
int seg;
- osect_idx = osect - objf->sections;
+ osect_idx = osect - objf->sections_start;
/* Current address of section. */
addr = osect->addr ();
@@ -757,7 +757,7 @@ frv_relocate_main_executable (void)
int osect_idx;
int seg;
- osect_idx = osect - objf->sections;
+ osect_idx = osect - objf->sections_start;
/* Current address of section. */
addr = osect->addr ();
@@ -2571,7 +2571,7 @@ reread_symbols (int from_tty)
/* NB: after this call to obstack_free, objfiles_changed
will need to be called (see discussion below). */
obstack_free (&objfile->objfile_obstack, 0);
- objfile->sections = NULL;
+ objfile->sections_start = NULL;
objfile->section_offsets.clear ();
objfile->sect_index_bss = -1;
objfile->sect_index_data = -1;
@@ -212,7 +212,7 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
bfd_section_name (section->the_bfd_section));
else
gdb_printf (outfile, " spurious section %ld",
- (long) (section - objfile->sections));
+ (long) (section - objfile->sections_start));
}
if (msymbol->demangled_name () != NULL)
{
@@ -1089,7 +1089,7 @@ struct obj_section *
general_symbol_info::obj_section (const struct objfile *objfile) const
{
if (section_index () >= 0)
- return &objfile->sections[section_index ()];
+ return &objfile->sections_start[section_index ()];
return nullptr;
}
@@ -1767,7 +1767,7 @@ fixup_symbol_section (struct symbol *sym, struct objfile *objfile)
if ((bfd_section_flags (s->the_bfd_section) & SEC_ALLOC) == 0)
continue;
- int idx = s - objfile->sections;
+ int idx = s - objfile->sections_start;
CORE_ADDR offset = objfile->section_offsets[idx];
if (fallback == -1)
@@ -2888,7 +2888,8 @@ xcoff_symfile_offsets (struct objfile *objfile,
if (objfile->section_offsets.empty ())
return; /* Is that even possible? Better safe than sorry. */
- first_section_name = bfd_section_name (objfile->sections[0].the_bfd_section);
+ first_section_name
+ = bfd_section_name (objfile->sections_start[0].the_bfd_section);
if (objfile->sect_index_text == 0
&& strcmp (first_section_name, ".text") != 0)