From 803584b96d97e1f6ea50b0a0064d2a03ab0baa60 Mon Sep 17 00:00:00 2001 From: Aaron Merey Date: Tue, 30 Aug 2022 20:18:11 -0400 Subject: 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. --- gdb/elfread.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gdb/elfread.c') diff --git a/gdb/elfread.c b/gdb/elfread.c index 08db208..13dbaf0 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 (), -- cgit v1.1