From: Fabian Kilger Date: Wed, 11 Jun 2025 20:52:17 +0000 (+0200) Subject: gdb: query inferior's filesystem for build-id debug files X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56443763a8304ee7bec3b773f98104c754c5d517;p=thirdparty%2Fbinutils-gdb.git gdb: query inferior's filesystem for build-id debug files This fixes a bug related to build-id files with linux namespaces. Specifically, we expect the debug files to be present inside the container, thus the container filesystem should be queried if the program is running inside one. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32956 Approved-By: Andrew Burgess --- diff --git a/gdb/build-id.c b/gdb/build-id.c index f1375626f1b..0ecd79fb869 100644 --- a/gdb/build-id.c +++ b/gdb/build-id.c @@ -29,6 +29,7 @@ #include "gdbsupport/scoped_fd.h" #include "debuginfod-support.h" #include "extension.h" +#include "inferior.h" /* See build-id.h. */ @@ -128,7 +129,8 @@ build_id_to_debug_bfd_1 (const std::string &original_link, if (supports_target_stat != TRIBOOL_FALSE) { struct stat sb; - int res = target_fileio_lstat (nullptr, link_on_target, &sb, + int res = target_fileio_lstat (current_inferior (), + link_on_target, &sb, &target_errno); if (res != 0 && target_errno != FILEIO_ENOSYS) @@ -157,7 +159,7 @@ build_id_to_debug_bfd_1 (const std::string &original_link, the path doesn't exist, but we just assume that anything other than EINVAL indicates the path doesn't exist. */ std::optional link_target - = target_fileio_readlink (nullptr, link_on_target, + = target_fileio_readlink (current_inferior (), link_on_target, &target_errno); if (link_target.has_value () || target_errno == FILEIO_EINVAL)