diff options
author | Tom Tromey <tromey@adacore.com> | 2023-05-22 11:40:10 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2023-07-21 12:05:30 -0600 |
commit | 27b2eff1b82f518254bec231650f1b67ee160200 (patch) | |
tree | f832c1d5c7b9628815f6a95a60df9c4a1b4356ab /gdb/progspace.c | |
parent | 672c55ddcf17d322dbc868d8465f0027d8210e73 (diff) | |
download | binutils-27b2eff1b82f518254bec231650f1b67ee160200.zip binutils-27b2eff1b82f518254bec231650f1b67ee160200.tar.gz binutils-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.c | 16 |
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 () { |