* [PATCH 0/3] A few fixes to OpenBSD's native target
@ 2021-07-27 0:24 John Baldwin
2021-07-27 0:24 ` [PATCH 1/3] Don't compile x86 debug register support on OpenBSD John Baldwin
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: John Baldwin @ 2021-07-27 0:24 UTC (permalink / raw)
To: gdb-patches
The first patch is an alternative fix for the issue Simon ran into
with OpenBSD trying to use the x86 debug registers when it doesn't
support their use by a debugger.
The second patch pacifies a compiler warning due to the lack of debug
register support.
The third patch fixes an issue where an existing process tripped an
assertion where find_inferior_pid was called with a pid of 0
(unfortunately stack traces don't work for OpenBSD core dumps, so I
couldn't easily tell where hte failure was). However, the use of
inferior_ptid is not correct anymore in ::wait methods and fixing that
alone allows a process to exit cleanly without error.
This is enough to get a single threaded program to run and exit
cleanly (which is all I tested). There are likely other issues in the
OpenBSD target, but this at least gets it working for the simple case
again.
John Baldwin (3):
Don't compile x86 debug register support on OpenBSD.
x86-bsd-nat: Only define gdb_ptrace when using debug registers.
obsd-nat: Various fixes to obsd_nat_target::wait.
gdb/configure.nat | 5 ++--
gdb/obsd-nat.c | 61 ++++++++++-------------------------------------
gdb/x86-bsd-nat.c | 16 ++++++-------
gdb/x86-bsd-nat.h | 9 +++++--
4 files changed, 30 insertions(+), 61 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/3] Don't compile x86 debug register support on OpenBSD. 2021-07-27 0:24 [PATCH 0/3] A few fixes to OpenBSD's native target John Baldwin @ 2021-07-27 0:24 ` John Baldwin 2021-07-27 1:19 ` Simon Marchi via Gdb-patches 2021-07-27 0:24 ` [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers John Baldwin 2021-07-27 0:24 ` [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait John Baldwin 2 siblings, 1 reply; 8+ messages in thread From: John Baldwin @ 2021-07-27 0:24 UTC (permalink / raw) To: gdb-patches - Change x86bsd_nat_target to only inherit from x86_nat_target if PT_GETDBREGS is supported. - Don't include x86-nat.o and nat/x86-dregs.o for OpenBSD/amd64. They were already omitted for OpenBSD/i386. --- gdb/configure.nat | 5 ++--- gdb/x86-bsd-nat.h | 9 +++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/gdb/configure.nat b/gdb/configure.nat index e34cccffd9..655c75dd1a 100644 --- a/gdb/configure.nat +++ b/gdb/configure.nat @@ -451,9 +451,8 @@ case ${gdb_host} in case ${gdb_host_cpu} in i386) # Host: OpenBSD/amd64 - NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o x86-nat.o \ - x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o \ - nat/x86-dregs.o" + NATDEPFILES="${NATDEPFILES} obsd-nat.o amd64-nat.o \ + x86-bsd-nat.o amd64-bsd-nat.o amd64-obsd-nat.o bsd-kvm.o" LOADLIBES='-lkvm' ;; mips) diff --git a/gdb/x86-bsd-nat.h b/gdb/x86-bsd-nat.h index 02d61c20b0..caf62e38df 100644 --- a/gdb/x86-bsd-nat.h +++ b/gdb/x86-bsd-nat.h @@ -27,18 +27,23 @@ extern size_t x86bsd_xsave_len; /* A prototype *BSD/x86 target. */ +#ifdef HAVE_PT_GETDBREGS template<typename BaseTarget> class x86bsd_nat_target : public x86_nat_target<BaseTarget> { using base_class = x86_nat_target<BaseTarget>; public: -#ifdef HAVE_PT_GETDBREGS void mourn_inferior () override { x86_cleanup_dregs (); base_class::mourn_inferior (); } +}; +#else /* !HAVE_PT_GETDBREGS */ +template<typename BaseTarget> +class x86bsd_nat_target : public BaseTarget +{ +}; #endif /* HAVE_PT_GETDBREGS */ -}; #endif /* x86-bsd-nat.h */ -- 2.31.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] Don't compile x86 debug register support on OpenBSD. 2021-07-27 0:24 ` [PATCH 1/3] Don't compile x86 debug register support on OpenBSD John Baldwin @ 2021-07-27 1:19 ` Simon Marchi via Gdb-patches 0 siblings, 0 replies; 8+ messages in thread From: Simon Marchi via Gdb-patches @ 2021-07-27 1:19 UTC (permalink / raw) To: John Baldwin, gdb-patches On 2021-07-26 8:24 p.m., John Baldwin wrote: > - Change x86bsd_nat_target to only inherit from x86_nat_target if > PT_GETDBREGS is supported. > > - Don't include x86-nat.o and nat/x86-dregs.o for OpenBSD/amd64. They > were already omitted for OpenBSD/i386. LGTM, but please add a little bit of info to the commit message, to explain why this change is needed. You can copy some of that from my patch's message. Simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers. 2021-07-27 0:24 [PATCH 0/3] A few fixes to OpenBSD's native target John Baldwin 2021-07-27 0:24 ` [PATCH 1/3] Don't compile x86 debug register support on OpenBSD John Baldwin @ 2021-07-27 0:24 ` John Baldwin 2021-07-27 1:20 ` Simon Marchi via Gdb-patches 2021-07-27 0:24 ` [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait John Baldwin 2 siblings, 1 reply; 8+ messages in thread From: John Baldwin @ 2021-07-27 0:24 UTC (permalink / raw) To: gdb-patches This fixes an unused function warning on OpenBSD which does not support PT_GETDBREGS. --- gdb/x86-bsd-nat.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c index 453fc44116..6aac76f182 100644 --- a/gdb/x86-bsd-nat.c +++ b/gdb/x86-bsd-nat.c @@ -33,6 +33,14 @@ #include "inf-ptrace.h" \f +#ifdef PT_GETXSTATE_INFO +size_t x86bsd_xsave_len; +#endif + +/* Support for debug registers. */ + +#ifdef HAVE_PT_GETDBREGS + static PTRACE_TYPE_RET gdb_ptrace (PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 addr) { @@ -46,14 +54,6 @@ gdb_ptrace (PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 addr) #endif } -#ifdef PT_GETXSTATE_INFO -size_t x86bsd_xsave_len; -#endif - -/* Support for debug registers. */ - -#ifdef HAVE_PT_GETDBREGS - /* Helper macro to access debug register X. FreeBSD/amd64 and modern versions of FreeBSD/i386 provide this macro in system headers. Define a local version for systems that do not provide it. */ -- 2.31.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers. 2021-07-27 0:24 ` [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers John Baldwin @ 2021-07-27 1:20 ` Simon Marchi via Gdb-patches 0 siblings, 0 replies; 8+ messages in thread From: Simon Marchi via Gdb-patches @ 2021-07-27 1:20 UTC (permalink / raw) To: John Baldwin, gdb-patches On 2021-07-26 8:24 p.m., John Baldwin wrote: > This fixes an unused function warning on OpenBSD which does not > support PT_GETDBREGS. > --- > gdb/x86-bsd-nat.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c > index 453fc44116..6aac76f182 100644 > --- a/gdb/x86-bsd-nat.c > +++ b/gdb/x86-bsd-nat.c > @@ -33,6 +33,14 @@ > #include "inf-ptrace.h" > \f > > +#ifdef PT_GETXSTATE_INFO > +size_t x86bsd_xsave_len; > +#endif > + > +/* Support for debug registers. */ > + > +#ifdef HAVE_PT_GETDBREGS > + > static PTRACE_TYPE_RET > gdb_ptrace (PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 addr) > { > @@ -46,14 +54,6 @@ gdb_ptrace (PTRACE_TYPE_ARG1 request, ptid_t ptid, PTRACE_TYPE_ARG3 addr) > #endif > } > > -#ifdef PT_GETXSTATE_INFO > -size_t x86bsd_xsave_len; > -#endif > - > -/* Support for debug registers. */ > - > -#ifdef HAVE_PT_GETDBREGS > - > /* Helper macro to access debug register X. FreeBSD/amd64 and modern > versions of FreeBSD/i386 provide this macro in system headers. Define > a local version for systems that do not provide it. */ > OK. Simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait. 2021-07-27 0:24 [PATCH 0/3] A few fixes to OpenBSD's native target John Baldwin 2021-07-27 0:24 ` [PATCH 1/3] Don't compile x86 debug register support on OpenBSD John Baldwin 2021-07-27 0:24 ` [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers John Baldwin @ 2021-07-27 0:24 ` John Baldwin 2021-07-27 1:54 ` Simon Marchi via Gdb-patches 2 siblings, 1 reply; 8+ messages in thread From: John Baldwin @ 2021-07-27 0:24 UTC (permalink / raw) To: gdb-patches - Call inf_ptrace_target::wait instead of duplicating the code. Replace a check for WIFSTOPPED on the returned status from waitpid by checking for TARGET_WAITKIND_STOPPED in the parsed status as is done in fbsd_nat_target::wait. - Don't use inferior_ptid when deciding if a new process is a child vs parent of the fork. Instead, use find_inferior_pid and assume that if an inferior already exists, the pid in question is the parent; otherwise, the pid is the child. - Don't use inferior_ptid when deciding if the ptid of the process needs to be updated with an LWP ID, or if this is a new thread. Instead, use the approach from fbsd-nat which is to check if a ptid without an LWP exists and if so update the ptid of that thread instead of adding a new thread. --- gdb/obsd-nat.c | 61 +++++++++++--------------------------------------- 1 file changed, 13 insertions(+), 48 deletions(-) diff --git a/gdb/obsd-nat.c b/gdb/obsd-nat.c index 46fdc0676e..a6612a982b 100644 --- a/gdb/obsd-nat.c +++ b/gdb/obsd-nat.c @@ -26,7 +26,7 @@ #include <sys/ptrace.h> #include "gdbsupport/gdb_wait.h" -#include "inf-child.h" +#include "inf-ptrace.h" #include "obsd-nat.h" /* OpenBSD 5.2 and later include rthreads which uses a thread model @@ -76,47 +76,14 @@ ptid_t obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, target_wait_flags options) { - pid_t pid; - int status, save_errno; - - do - { - set_sigint_trap (); - - do - { - pid = waitpid (ptid.pid (), &status, 0); - save_errno = errno; - } - while (pid == -1 && errno == EINTR); - - clear_sigint_trap (); - - if (pid == -1) - { - fprintf_unfiltered (gdb_stderr, - _("Child process unexpectedly missing: %s.\n"), - safe_strerror (save_errno)); - - /* Claim it exited with unknown signal. */ - ourstatus->kind = TARGET_WAITKIND_SIGNALLED; - ourstatus->value.sig = GDB_SIGNAL_UNKNOWN; - return inferior_ptid; - } - - /* Ignore terminated detached child processes. */ - if (!WIFSTOPPED (status) && pid != inferior_ptid.pid ()) - pid = -1; - } - while (pid == -1); - - ptid = ptid_t (pid); - - if (WIFSTOPPED (status)) + ptid_t wptid = inf_ptrace_target::wait (ptid, ourstatus, options); + if (ourstatus->kind == TARGET_WAITKIND_STOPPED) { ptrace_state_t pe; - pid_t fpid; + pid_t fpid, pid; + int status; + pid = wptid.pid (); if (ptrace (PT_GET_PROCESS_STATE, pid, (caddr_t)&pe, sizeof pe) == -1) perror_with_name (("ptrace")); @@ -137,7 +104,7 @@ obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, gdb_assert (pe.pe_report_event == PTRACE_FORK); gdb_assert (pe.pe_other_pid == pid); - if (fpid == inferior_ptid.pid ()) + if (find_inferior_pid (this, pid) != nullptr) { ourstatus->value.related_pid = ptid_t (pe.pe_other_pid); return ptid_t (fpid); @@ -146,18 +113,16 @@ obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, return ptid_t (pid); } - ptid = ptid_t (pid, pe.pe_tid, 0); - if (!in_thread_list (this, ptid)) + wptid = ptid_t (pid, pe.pe_tid, 0); + if (!in_thread_list (this, wptid)) { - if (inferior_ptid.lwp () == 0) - thread_change_ptid (this, inferior_ptid, ptid); + if (in_thread_list (this, ptid_t (pid))) + thread_change_ptid (this, ptid_t (pid), wptid); else - add_thread (this, ptid); + add_thread (this, wptid); } } - - store_waitstatus (ourstatus, status); - return ptid; + return wptid; } #endif /* PT_GET_THREAD_FIRST */ -- 2.31.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait. 2021-07-27 0:24 ` [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait John Baldwin @ 2021-07-27 1:54 ` Simon Marchi via Gdb-patches 2021-07-27 16:03 ` John Baldwin 0 siblings, 1 reply; 8+ messages in thread From: Simon Marchi via Gdb-patches @ 2021-07-27 1:54 UTC (permalink / raw) To: John Baldwin, gdb-patches On 2021-07-26 8:24 p.m., John Baldwin wrote: > - Call inf_ptrace_target::wait instead of duplicating the code. > Replace a check for WIFSTOPPED on the returned status from waitpid > by checking for TARGET_WAITKIND_STOPPED in the parsed status as is > done in fbsd_nat_target::wait. > > - Don't use inferior_ptid when deciding if a new process is a child vs > parent of the fork. Instead, use find_inferior_pid and assume that > if an inferior already exists, the pid in question is the parent; > otherwise, the pid is the child. > > - Don't use inferior_ptid when deciding if the ptid of the process > needs to be updated with an LWP ID, or if this is a new thread. > Instead, use the approach from fbsd-nat which is to check if a ptid > without an LWP exists and if so update the ptid of that thread > instead of adding a new thread. > --- > gdb/obsd-nat.c | 61 +++++++++++--------------------------------------- > 1 file changed, 13 insertions(+), 48 deletions(-) > > diff --git a/gdb/obsd-nat.c b/gdb/obsd-nat.c > index 46fdc0676e..a6612a982b 100644 > --- a/gdb/obsd-nat.c > +++ b/gdb/obsd-nat.c > @@ -26,7 +26,7 @@ > #include <sys/ptrace.h> > #include "gdbsupport/gdb_wait.h" > > -#include "inf-child.h" > +#include "inf-ptrace.h" > #include "obsd-nat.h" > > /* OpenBSD 5.2 and later include rthreads which uses a thread model > @@ -76,47 +76,14 @@ ptid_t > obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, > target_wait_flags options) > { > - pid_t pid; > - int status, save_errno; > - > - do > - { > - set_sigint_trap (); > - > - do > - { > - pid = waitpid (ptid.pid (), &status, 0); > - save_errno = errno; > - } > - while (pid == -1 && errno == EINTR); > - > - clear_sigint_trap (); > - > - if (pid == -1) > - { > - fprintf_unfiltered (gdb_stderr, > - _("Child process unexpectedly missing: %s.\n"), > - safe_strerror (save_errno)); > - > - /* Claim it exited with unknown signal. */ > - ourstatus->kind = TARGET_WAITKIND_SIGNALLED; > - ourstatus->value.sig = GDB_SIGNAL_UNKNOWN; > - return inferior_ptid; > - } > - > - /* Ignore terminated detached child processes. */ > - if (!WIFSTOPPED (status) && pid != inferior_ptid.pid ()) > - pid = -1; > - } > - while (pid == -1); > - > - ptid = ptid_t (pid); > - > - if (WIFSTOPPED (status)) > + ptid_t wptid = inf_ptrace_target::wait (ptid, ourstatus, options); > + if (ourstatus->kind == TARGET_WAITKIND_STOPPED) > { > ptrace_state_t pe; > - pid_t fpid; > + pid_t fpid, pid; > + int status; > > + pid = wptid.pid (); > if (ptrace (PT_GET_PROCESS_STATE, pid, (caddr_t)&pe, sizeof pe) == -1) > perror_with_name (("ptrace")); > > @@ -137,7 +104,7 @@ obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, > > gdb_assert (pe.pe_report_event == PTRACE_FORK); > gdb_assert (pe.pe_other_pid == pid); > - if (fpid == inferior_ptid.pid ()) > + if (find_inferior_pid (this, pid) != nullptr) > { > ourstatus->value.related_pid = ptid_t (pe.pe_other_pid); > return ptid_t (fpid); I don't really have comments on this, since I am not familiar with the OpenBSD specifics. But I don't understand this code above. fpid refers to the fork child pid? And pe.pe_other_pid as well? So it's as if we return that the child has forked? What am I getting wrong? Simon ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait. 2021-07-27 1:54 ` Simon Marchi via Gdb-patches @ 2021-07-27 16:03 ` John Baldwin 0 siblings, 0 replies; 8+ messages in thread From: John Baldwin @ 2021-07-27 16:03 UTC (permalink / raw) To: Simon Marchi, gdb-patches On 7/26/21 6:54 PM, Simon Marchi wrote: > > > On 2021-07-26 8:24 p.m., John Baldwin wrote: >> - Call inf_ptrace_target::wait instead of duplicating the code. >> Replace a check for WIFSTOPPED on the returned status from waitpid >> by checking for TARGET_WAITKIND_STOPPED in the parsed status as is >> done in fbsd_nat_target::wait. >> >> - Don't use inferior_ptid when deciding if a new process is a child vs >> parent of the fork. Instead, use find_inferior_pid and assume that >> if an inferior already exists, the pid in question is the parent; >> otherwise, the pid is the child. >> >> - Don't use inferior_ptid when deciding if the ptid of the process >> needs to be updated with an LWP ID, or if this is a new thread. >> Instead, use the approach from fbsd-nat which is to check if a ptid >> without an LWP exists and if so update the ptid of that thread >> instead of adding a new thread. >> --- >> gdb/obsd-nat.c | 61 +++++++++++--------------------------------------- >> 1 file changed, 13 insertions(+), 48 deletions(-) >> >> diff --git a/gdb/obsd-nat.c b/gdb/obsd-nat.c >> index 46fdc0676e..a6612a982b 100644 >> --- a/gdb/obsd-nat.c >> +++ b/gdb/obsd-nat.c >> @@ -26,7 +26,7 @@ >> #include <sys/ptrace.h> >> #include "gdbsupport/gdb_wait.h" >> >> -#include "inf-child.h" >> +#include "inf-ptrace.h" >> #include "obsd-nat.h" >> >> /* OpenBSD 5.2 and later include rthreads which uses a thread model >> @@ -76,47 +76,14 @@ ptid_t >> obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, >> target_wait_flags options) >> { >> - pid_t pid; >> - int status, save_errno; >> - >> - do >> - { >> - set_sigint_trap (); >> - >> - do >> - { >> - pid = waitpid (ptid.pid (), &status, 0); >> - save_errno = errno; >> - } >> - while (pid == -1 && errno == EINTR); >> - >> - clear_sigint_trap (); >> - >> - if (pid == -1) >> - { >> - fprintf_unfiltered (gdb_stderr, >> - _("Child process unexpectedly missing: %s.\n"), >> - safe_strerror (save_errno)); >> - >> - /* Claim it exited with unknown signal. */ >> - ourstatus->kind = TARGET_WAITKIND_SIGNALLED; >> - ourstatus->value.sig = GDB_SIGNAL_UNKNOWN; >> - return inferior_ptid; >> - } >> - >> - /* Ignore terminated detached child processes. */ >> - if (!WIFSTOPPED (status) && pid != inferior_ptid.pid ()) >> - pid = -1; >> - } >> - while (pid == -1); >> - >> - ptid = ptid_t (pid); >> - >> - if (WIFSTOPPED (status)) >> + ptid_t wptid = inf_ptrace_target::wait (ptid, ourstatus, options); >> + if (ourstatus->kind == TARGET_WAITKIND_STOPPED) >> { >> ptrace_state_t pe; >> - pid_t fpid; >> + pid_t fpid, pid; >> + int status; >> >> + pid = wptid.pid (); >> if (ptrace (PT_GET_PROCESS_STATE, pid, (caddr_t)&pe, sizeof pe) == -1) >> perror_with_name (("ptrace")); >> >> @@ -137,7 +104,7 @@ obsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus, >> >> gdb_assert (pe.pe_report_event == PTRACE_FORK); >> gdb_assert (pe.pe_other_pid == pid); >> - if (fpid == inferior_ptid.pid ()) >> + if (find_inferior_pid (this, pid) != nullptr) >> { >> ourstatus->value.related_pid = ptid_t (pe.pe_other_pid); >> return ptid_t (fpid); > > I don't really have comments on this, since I am not familiar with the > OpenBSD specifics. But I don't understand this code above. fpid refers > to the fork child pid? And pe.pe_other_pid as well? So it's as if we > return that the child has forked? What am I getting wrong? My reading of the code is that when a process forks, both the parent and child report identical PTRACE_FORK events where pe_other_pid is the pid of the other process. For TARGET_WAITKIND_FORKED, both processes need to have reported their events (which is then reported as a single logical event to the core), so when ::wait sees the first PTRACE_FORK event, it immediately waits for the other process to report an event (and asserts it is also a PTRACE_FORK). fpid is the pid of the second process to report an event, and pid is the pid of the original process that reported an event. The find_inferior_pid check is used to determine which of 'pid' or 'fpid' is the parent. If find_inferior_pid (this, pid) finds an existing inferior, then 'pid' is the parent and 'fpid' is the child. It does seem though that both the existing code (that was checking inferior_ptid) and the new version both return a ptid for the child process. fbsd-nat.c returns the ptid of the parent with the child pid set in the ourstatus->value.related_pid. Oh, I see what I did wrong, the old code was comparing 'fpid' against inferior_ptid and I changed this to 'pid'. -- John Baldwin ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-07-27 16:03 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-27 0:24 [PATCH 0/3] A few fixes to OpenBSD's native target John Baldwin 2021-07-27 0:24 ` [PATCH 1/3] Don't compile x86 debug register support on OpenBSD John Baldwin 2021-07-27 1:19 ` Simon Marchi via Gdb-patches 2021-07-27 0:24 ` [PATCH 2/3] x86-bsd-nat: Only define gdb_ptrace when using debug registers John Baldwin 2021-07-27 1:20 ` Simon Marchi via Gdb-patches 2021-07-27 0:24 ` [PATCH 3/3] obsd-nat: Various fixes to obsd_nat_target::wait John Baldwin 2021-07-27 1:54 ` Simon Marchi via Gdb-patches 2021-07-27 16:03 ` John Baldwin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox