Add obj_section::contains method

I noticed a number of spots checking whether an address is in an
obj_section.  This patch introduces a new method for this and changes
some code to use it.

Regression tested on x86-64 Fedora 38.

Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Tom Tromey
2024-02-10 15:03:18 -07:00
parent 8480a37e14
commit 94a75b0363
5 changed files with 10 additions and 5 deletions

View File

@@ -716,7 +716,7 @@ frob_address (struct objfile *objfile, CORE_ADDR pc,
{
for (obj_section *iter : objfile->sections ())
{
if (pc >= iter->addr () && pc < iter->endaddr ())
if (iter->contains (pc))
{
*unrel_addr = unrelocated_addr (pc - iter->offset ());
return 1;

View File

@@ -1213,7 +1213,7 @@ is_addr_in_objfile (CORE_ADDR addr, const struct objfile *objfile)
if (section_is_overlay (osect) && !section_is_mapped (osect))
continue;
if (osect->addr () <= addr && addr < osect->endaddr ())
if (osect->contains (addr))
return true;
}
return false;

View File

@@ -394,6 +394,12 @@ struct obj_section
return this->addr () + bfd_section_size (this->the_bfd_section);
}
/* True if ADDR is in this obj_section, false otherwise. */
bool contains (CORE_ADDR addr) const
{
return addr >= this->addr () && addr < endaddr ();
}
/* BFD section pointer */
struct bfd_section *the_bfd_section;

View File

@@ -1499,7 +1499,7 @@ info_symbol_command (const char *arg, int from_tty)
sect_addr = overlay_mapped_address (addr, osect);
if (osect->addr () <= sect_addr && sect_addr < osect->endaddr ()
if (osect->contains (sect_addr)
&& (msymbol
= lookup_minimal_symbol_by_pc_section (sect_addr,
osect).minsym))

View File

@@ -3085,8 +3085,7 @@ pc_in_mapped_range (CORE_ADDR pc, struct obj_section *section)
{
if (section_is_overlay (section))
{
if (section->addr () <= pc
&& pc < section->endaddr ())
if (section->contains (pc))
return true;
}