aboutsummaryrefslogtreecommitdiff
path: root/gdb/progspace.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2023-05-22 11:40:10 -0600
committerTom Tromey <tromey@adacore.com>2023-07-21 12:05:30 -0600
commit27b2eff1b82f518254bec231650f1b67ee160200 (patch)
treef832c1d5c7b9628815f6a95a60df9c4a1b4356ab /gdb/progspace.c
parent672c55ddcf17d322dbc868d8465f0027d8210e73 (diff)
downloadgdb-27b2eff1b82f518254bec231650f1b67ee160200.zip
gdb-27b2eff1b82f518254bec231650f1b67ee160200.tar.gz
gdb-27b2eff1b82f518254bec231650f1b67ee160200.tar.bz2
Add Progspace.objfile_for_address
This adds a new objfile_for_address method to gdb.Progspace. This makes it easy to find the objfile for a given address. There's a related PR; and while this change would have been sufficient for my original need, it's not clear to me whether I should close the bug. Nevertheless I think it makes sense to at least mention it here. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19288 Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Diffstat (limited to 'gdb/progspace.c')
-rw-r--r--gdb/progspace.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/gdb/progspace.c b/gdb/progspace.c
index 32bdfeb..5cf8334 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -180,6 +180,22 @@ program_space::remove_objfile (struct objfile *objfile)
/* See progspace.h. */
+struct objfile *
+program_space::objfile_for_address (CORE_ADDR address)
+{
+ for (auto iter : objfiles ())
+ {
+ /* Don't check separate debug objfiles. */
+ if (iter->separate_debug_objfile_backlink != nullptr)
+ continue;
+ if (is_addr_in_objfile (address, iter))
+ return iter;
+ }
+ return nullptr;
+}
+
+/* See progspace.h. */
+
void
program_space::exec_close ()
{