[PATCH 00/10] Add minimal NetBSD/amd64 gdbserver support

Kamil Rytarowski
2020-09-02T18:00:10Z

Extract reusable functionality from gdb/nbsd-nat.c into
gdb/nat/netbsd-nat.c and switch the gdb/nbsd-nat.c functions
(nbsd_nat_target::pid_to_exec_file, nbsd_nat_target::thread_alive,
nbsd_nat_target::thread_name, nbsd_nat_target::post_startup_inferior,
nbsd_nat_target::post_attach, nbsd_nat_target::xfer_partial,
nbsd_add_threads) to gdb/nat.

Add handle_eintr in gdbsupport to wrap syscalls and EINTR handling.

Add NetBSD/amd64 gdbserver support

Implement the following functionality: create_inferior,
post_create_inferior, attach, kill, detach, mourn, join, thread_alive,
resume, wait, fetch_registers, store_registers, read_memory, write_memory,
request_interrupt, supports_read_auxv, read_auxv,
supports_hardware_single_step, sw_breakpoint_from_kind,
supports_z_point_type, insert_point, remove_point,
stopped_by_sw_breakpoint, supports_qxfer_siginfo, qxfer_siginfo,
supports_stopped_by_sw_breakpoint, supports_non_stop,
supports_multi_process, supports_fork_events, supports_vfork_events,
supports_exec_events, supports_disable_randomization,
supports_qxfer_libraries_svr4, qxfer_libraries_svr4,
supports_pid_to_exec_file, pid_to_exec_file, thread_name,
supports_catch_syscall.

The only CPU architecture supported: x86_64.

Implement only support for hardware assisted single step and
software breakpoint.

Implement support only for regular X86 registers, thus no FPU.

Kamil Rytarowski (10):
Add handle_eintr to wrap EINTR handling in syscalls
Register a placeholder for NetBSD shared functions in gdb/nat
Build nat/netbsd-nat.o for the NetBSD native target
Add netbsd_nat::pid_to_exec_file
Add gdb/nat common functions for listing threads
Add netbsd_nat::enable_proc_events in gdb/nat
Add a common utility function to read and write siginfo_t in inferior
Avoid double free in startup_inferior
Switch local native code to gdb/nat shared functions
Add minimal and functional NetBSD/amd64 gdbserver

gdb/ChangeLog | 47 ++
gdb/configure.nat | 2 +-
gdb/nat/fork-inferior.c | 5 +-
gdb/nat/netbsd-nat.c | 213 +++++
gdb/nat/netbsd-nat.h | 46 ++
gdb/nbsd-nat.c | 147 +---
gdbserver/ChangeLog | 9 +
gdbserver/Makefile.in | 3 +
gdbserver/configure.srv | 7 +
gdbserver/netbsd-low.cc | 1352 ++++++++++++++++++++++++++++++++
gdbserver/netbsd-low.h | 157 ++++
gdbserver/netbsd-x86_64-low.cc | 250 ++++++
gdbsupport/ChangeLog | 4 +
gdbsupport/eintr.h | 41 +
14 files changed, 2147 insertions(+), 136 deletions(-)
create mode 100644 gdb/nat/netbsd-nat.c
create mode 100644 gdb/nat/netbsd-nat.h
create mode 100644 gdbserver/netbsd-low.cc
create mode 100644 gdbserver/netbsd-low.h
create mode 100644 gdbserver/netbsd-x86_64-low.cc
create mode 100644 gdbsupport/eintr.h

--
2.28.0