From: Aaron Merey Date: Wed, 31 Aug 2022 00:18:11 +0000 (-0400) Subject: gdb/elfread.c: Use bfd filename instead of objfile->original_name X-Git-Tag: gdb-13-branchpoint~1309 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=803584b96d97e1f6ea50b0a0064d2a03ab0baa60;p=thirdparty%2Fbinutils-gdb.git gdb/elfread.c: Use bfd filename instead of objfile->original_name The call to debuginfod_debuginfo_query in elf_symfile_read is given objfile->original_name as the filename to print when downloading the objfile's debuginfo. In some cases original_name is prefixed with gdb's working directory even though the objfile is not located in the working directory. This causes debuginfod to display the wrong path of the objfile during a download. Fix this by using the objfile's bfd filename instead. --- diff --git a/gdb/elfread.c b/gdb/elfread.c index 08db208ebbb..13dbaf0227a 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -1279,13 +1279,14 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) has_dwarf2 = false; const struct bfd_build_id *build_id = build_id_bfd_get (objfile->obfd.get ()); + const char *filename = bfd_get_filename (objfile->obfd.get ()); if (build_id != nullptr) { gdb::unique_xmalloc_ptr symfile_path; scoped_fd fd (debuginfod_debuginfo_query (build_id->data, build_id->size, - objfile->original_name, + filename, &symfile_path)); if (fd.get () >= 0) @@ -1295,7 +1296,7 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) if (debug_bfd == nullptr) warning (_("File \"%s\" from debuginfod cannot be opened as bfd"), - objfile->original_name); + filename); else if (build_id_verify (debug_bfd.get (), build_id->size, build_id->data)) { symbol_file_add_separate (debug_bfd, symfile_path.get (),