[PATCH v4 00/10] Add minimal NetBSD/amd64 gdbserver support
Simon Marchi
simark@simark.ca
Thu Sep 10 12:42:07 GMT 2020
On 2020-09-08 8:36 a.m., Kamil Rytarowski wrote:
> 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.
>
> Changes in v4:
>
> * Fix code comment typo in eintr.h.
> * Update code comment in fork-inferior.c.
>
> Changes in v3:
>
> * Document public interfaces in netbsd-nat.h.
> * Enhance documentation of gdb::handle_eintr.
> * Return const char * from netbsd_nat::pid_to_exec_file ().
> * Enhance documentation of netbsd_thread_lister ().
> * Capture integer variables by value, not by reference in
> threading functions in netbsd-nat.c
> * Rename netbsd-x86_64-low.cc to netbsd-amd64-low.cc
> * Avoid manual memory allocation, replace by std::vector<>.
> Plug potential leaks in case of errors.
> * Remove ::attach() support to simplify the code as it is not stable yet.
>
> Changes in v2:
>
> * handle_eintr downgraded from C++14 to C++11 and allow predefining the
> value of failure.
> * Enhance ChangeLog entries.
> * Remove srv_netbsd from /gdbserver/configure.srv.
> * Enhance wording and code style.
> * Remove function return type from netbsd_add_process().
> * Rename netbsd_nat::list_threads to netbsd_nat::for_each_thread.
> * Return error on failure in netbsd_process_target::kill.
> * Use core_addr_to_string() when printing CORE_ADDR.
> * Switch from (*target). to target->.
> * Simplify netbsd_process_target::sw_breakpoint_from_kind.
> * Remove netbsd_target_ops::process_qsupported() and
> x86_64_netbsd_update_xmltarget().
>
> 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 | 53 ++
> gdb/configure.nat | 2 +-
> gdb/nat/fork-inferior.c | 5 +-
> gdb/nat/netbsd-nat.c | 213 ++++++
> gdb/nat/netbsd-nat.h | 72 ++
> gdb/nbsd-nat.c | 147 +---
> gdbserver/ChangeLog | 9 +
> gdbserver/Makefile.in | 3 +
> gdbserver/configure.srv | 6 +
> gdbserver/netbsd-amd64-low.cc | 187 +++++
> gdbserver/netbsd-low.cc | 1327 +++++++++++++++++++++++++++++++++
> gdbserver/netbsd-low.h | 154 ++++
> gdbsupport/ChangeLog | 4 +
> gdbsupport/eintr.h | 67 ++
> 14 files changed, 2113 insertions(+), 136 deletions(-)
> create mode 100644 gdb/nat/netbsd-nat.c
> create mode 100644 gdb/nat/netbsd-nat.h
> create mode 100644 gdbserver/netbsd-amd64-low.cc
> create mode 100644 gdbserver/netbsd-low.cc
> create mode 100644 gdbserver/netbsd-low.h
> create mode 100644 gdbsupport/eintr.h
>
> --
> 2.28.0
>
Thanks, please go ahead and merge this.
Simon
More information about the Gdb-patches
mailing list