public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH][gdb] Fix fbsd core matching
@ 2022-06-09  8:58 Tom de Vries
  2022-06-09 15:59 ` John Baldwin
  0 siblings, 1 reply; 6+ messages in thread
From: Tom de Vries @ 2022-06-09  8:58 UTC (permalink / raw)
  To: gdb-patches; +Cc: binutils

Hi,

With an --enable-targets=all build and target board unix/-m32 I run into a
FAIL in test-case gdb.base/corefile.exp:
...
(gdb) file outputs/gdb.base/corefile/corefile^M
Reading symbols from outputs/gdb.base/corefile/corefile...^M
(gdb) core-file outputs/gdb.base/corefile/corefile.core^M
warning: core file may not match specified executable file.^M
[New LWP 12011]^M
Core was generated by `outputs/gdb.base/corefile/co'.^M
Program terminated with signal SIGABRT, Aborted.^M
(gdb) FAIL: gdb.base/corefile.exp: core-file warning-free
...

The warning is there because of this mismatch between core and exec:
...
(gdb) p core_bfd->xvec
$3 = (const struct bfd_target *) 0x20112a0 <i386_elf32_fbsd_vec>
(gdb) p exec_bfd->xvec
$4 = (const struct bfd_target *) 0x2010b00 <i386_elf32_vec>
...

In the exec case, the detected architecture is i386_elf32_vec because this bit
of code in elfcode.h:elf_object_p():
...
  if (ebd->elf_machine_code != EM_NONE
      && i_ehdrp->e_ident[EI_OSABI] != ebd->elf_osabi
      && ebd->elf_osabi != ELFOSABI_NONE)
    goto got_wrong_format_error;
...
prevents i386_elf32_fbsd from matching.

Fix the core matching by copying that code to elfcore.h:elf_core_file_p().

Tested on x86_64-linux.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29227

Any comments?

Thanks,
- Tom

[gdb] Fix fbsd core matching

---
 bfd/elfcore.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/bfd/elfcore.h b/bfd/elfcore.h
index 809f6711aed..4ce81e2e383 100644
--- a/bfd/elfcore.h
+++ b/bfd/elfcore.h
@@ -272,6 +272,11 @@ elf_core_file_p (bfd *abfd)
       && ebd->elf_machine_code != EM_NONE)
     goto fail;
 
+  if (ebd->elf_machine_code != EM_NONE
+      && i_ehdrp->e_ident[EI_OSABI] != ebd->elf_osabi
+      && ebd->elf_osabi != ELFOSABI_NONE)
+    goto fail;
+
   /* Let the backend double check the format and override global
      information.  We do this before processing the program headers
      to allow the correct machine (as opposed to just the default

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-16  8:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-09  8:58 [PATCH][gdb] Fix fbsd core matching Tom de Vries
2022-06-09 15:59 ` John Baldwin
2022-06-14  0:05   ` Alan Modra
2022-06-14  9:03     ` Tom de Vries
2022-06-16  0:52       ` Alan Modra
2022-06-16  8:04         ` Tom de Vries

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).