aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2024-02-10 15:03:18 -0700
committerTom Tromey <tom@tromey.com>2024-02-20 08:52:33 -0700
commit94a75b0363b1e09416e9bd24cac72d98864688d8 (patch)
treef4b83dd7c2150d7fef8bcb76dfddd4da735a1b52 /gdb
parent8480a37e146c40e82a93c0ecf6144571516c95c5 (diff)
downloadgdb-94a75b0363b1e09416e9bd24cac72d98864688d8.zip
gdb-94a75b0363b1e09416e9bd24cac72d98864688d8.tar.gz
gdb-94a75b0363b1e09416e9bd24cac72d98864688d8.tar.bz2
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>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/minsyms.c2
-rw-r--r--gdb/objfiles.c2
-rw-r--r--gdb/objfiles.h6
-rw-r--r--gdb/printcmd.c2
-rw-r--r--gdb/symfile.c3
5 files changed, 10 insertions, 5 deletions
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 2a43175..6aa2010 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -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;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index bcaae42..d880b93 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -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;
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 7ed2322..8b8b718 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -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;
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 43c0f44..63e530e 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -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))
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 9d5ce7f..db6d76e 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -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;
}