[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