diff options
Diffstat (limited to 'gdb/extension.c')
-rw-r--r-- | gdb/extension.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gdb/extension.c b/gdb/extension.c index 15e1f11..ec1aa13 100644 --- a/gdb/extension.c +++ b/gdb/extension.c @@ -1070,6 +1070,28 @@ ext_lang_handle_missing_debuginfo (struct objfile *objfile) return {}; } +/* See extension.h. */ + +ext_lang_missing_file_result +ext_lang_find_objfile_from_buildid (program_space *pspace, + const struct bfd_build_id *build_id, + const char *filename) +{ + for (const struct extension_language_defn *extlang : extension_languages) + { + if (extlang->ops == nullptr + || extlang->ops->find_objfile_from_buildid == nullptr) + continue; + ext_lang_missing_file_result result + = extlang->ops->find_objfile_from_buildid (extlang, pspace, build_id, + filename); + if (!result.filename ().empty () || result.try_again ()) + return result; + } + + return {}; +} + /* Called via an observer before gdb prints its prompt. Iterate over the extension languages giving them a chance to change the prompt. The first one to change the prompt wins, |