Re: [PATCH 0/8] Add support for $_siginfo on FreeBSD

John Baldwin
2017-07-06T11:17:31Z

On 6/29/17 7:32 PM, John Baldwin wrote:
> This series adds support for $_siginfo for both live processes and
> process cores. siginfo_t for threads is only stored in a per-thread
> ELF core note on FreeBSD 12.0 and later.
>
> The existing code in corelow.c for siginfo_t assumed the Linux-specific
> NT_SIGINFO ELF core note, but FreeBSD stores siginfo as one member of a
> larger ELF core note. To accomodate this, I added a new gdbarch method
> that is used to fetch the signal information from a core dump. I moved
> the body of the existing core_get_siginfo function into an implementation
> of the new gdbarch method in linux-tdep.c.
>
> Tested on FreeBSD/amd64 (64-bit and 32-bit binaries), FreeBSD/i386,
> and Centos/x86-64 (no regressions in test suite for this last).

Ping? The binutils patches (6 and 7) have been approved, but some of the
GDB patches (3 and 4) are not FreeBSD-specific (e.g. a new gdbarch method
for fetching siginfo from a core).

> John Baldwin (8):
> Implement the "get_siginfo_type" gdbarch method for FreeBSD
> architectures.
> Fetch signal information for native FreeBSD processes.
> Move the thread_section_name class to gdbcore.h.
> Add a new gdbarch method to fetch signal information from core files.
> Use the thread_section_name helper class in fbsd_core_thread_name.
> Recognize the recently-added FreeBSD core dump note for LWP info.
> Create psuedo sections for FreeBSD NT_PTLWPINFO core notes.
> Read signal information from FreeBSD core dumps.
>
> bfd/ChangeLog | 4 ++
> bfd/elf.c | 4 ++
> binutils/ChangeLog | 4 ++
> binutils/readelf.c | 2 +
> gdb/ChangeLog | 43 +++++++++++
> gdb/corelow.c | 82 ++++-----------------
> gdb/fbsd-nat.c | 155 ++++++++++++++++++++++++++++++++++++++++
> gdb/fbsd-tdep.c | 197 +++++++++++++++++++++++++++++++++++++++++++++++++--
> gdb/gdbarch.c | 32 +++++++++
> gdb/gdbarch.h | 10 +++
> gdb/gdbarch.sh | 5 ++
> gdb/gdbcore.h | 45 ++++++++++++
> gdb/linux-tdep.c | 21 ++++++
> include/ChangeLog | 4 ++
> include/elf/common.h | 1 +
> 15 files changed, 536 insertions(+), 73 deletions(-)
>

--
John Baldwin