Recognize FreeBSD core dump note for x86 segment base registers.
authorJohn Baldwin <jhb@FreeBSD.org>
Fri, 1 Apr 2022 20:16:46 +0000 (13:16 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Fri, 1 Apr 2022 20:16:46 +0000 (13:16 -0700)
This core dump note contains the value of the base address of the %fs
and %gs segments for both i386 and amd64 core dumps.  It is primarily
useful in resolving the address of TLS variables in core dumps.

binutils/ChangeLog:

* readelf.c (get_freebsd_elfcore_note_type): Handle
NT_FREEBSD_X86_SEGBASES.

include/ChangeLog:

* elf/common.h (NT_FREEBSD_X86_SEGBASES): Define.

binutils/ChangeLog
binutils/readelf.c
include/ChangeLog
include/elf/common.h

index 81f74f5b2e619ff7817a38e5cf3fddd9726ca925..63c425c7a688b527dfc337b6bb2d19208108817e 100644 (file)
@@ -1,3 +1,8 @@
+2022-04-01  John Baldwin  <jhb@FreeBSD.org>
+
+       * readelf.c (get_freebsd_elfcore_note_type): Handle
+       NT_FREEBSD_X86_SEGBASES.
+
 2022-03-31  Nick Clifton  <nickc@redhat.com>
 
        * arlex.l: Accept the plus character as part of a filename.
index a2dbaa4722e3f4e583729a01dd6c3c4ec170a6c7..84c8cfd45fcd6695cd566da78fa7637705d76b7c 100644 (file)
@@ -20448,6 +20448,8 @@ get_freebsd_elfcore_note_type (Filedata * filedata, unsigned e_type)
       return _("NT_PROCSTAT_AUXV (auxv data)");
     case NT_FREEBSD_PTLWPINFO:
       return _("NT_PTLWPINFO (ptrace_lwpinfo structure)");
+    case NT_FREEBSD_X86_SEGBASES:
+      return _("NT_X86_SEGBASES (x86 segment base registers)");
     }
   return get_note_type (filedata, e_type);
 }
index 82194629c97d361d12b3e9650ff7f70775383e76..502fc47c148ee776fe0b76bac772d0d66da69d99 100644 (file)
@@ -1,3 +1,7 @@
+2022-04-01  John Baldwin  <jhb@FreeBSD.org>
+
+       * elf/common.h (NT_FREEBSD_X86_SEGBASES): Define.
+
 2022-03-16  Simon Marchi  <simon.marchi@efficios.com>
 
        * elf/amdgpu.h: Add relocation values.
index 70d63e3299c0cc6973b8e3054ee44fe117ba7579..ad62a7d85236f71a9eebc7ad694bb84cff3cbd83 100644 (file)
 #define        NT_FREEBSD_PROCSTAT_PSSTRINGS   15      /* Procstat ps_strings data. */
 #define        NT_FREEBSD_PROCSTAT_AUXV        16      /* Procstat auxv data. */
 #define        NT_FREEBSD_PTLWPINFO    17      /* Thread ptrace miscellaneous info. */
+#define        NT_FREEBSD_X86_SEGBASES 0x200   /* x86 segment base registers */
 
 /* Note segments for core files on NetBSD systems.  Note name
    must start with "NetBSD-CORE".  */