[PATCH 4/4] Define a DBREG_DRX macro on NetBSD.
John Baldwin
jhb@FreeBSD.org
Sat Jul 15 17:30:00 GMT 2017
NetBSD recently added PT_GETDBREGS and PT_SETDBREGS ptrace operations
that match the existing ones supported by x86-bsd-nat.c. NetBSD's
headers do not provide the DBREG_DRX helper macro, so define a local
version in x86-bsd-nat.c.
gdb/ChangeLog:
* x86-bsd-nat.c [!DBREG_DRX && __NetBSD__]: Define DBREG_DRX.
---
gdb/ChangeLog | 4 ++++
gdb/x86-bsd-nat.c | 9 +++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b6a1960d43..44129d9e05 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2017-07-15 John Baldwin <jhb@FreeBSD.org>
+ * x86-bsd-nat.c [!DBREG_DRX && __NetBSD__]: Define DBREG_DRX.
+
+2017-07-15 John Baldwin <jhb@FreeBSD.org>
+
* configure.nat: Add "bsd-kvm.o" and "-lkvm" for NetBSD/amd64.
2017-07-15 John Baldwin <jhb@FreeBSD.org>
diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c
index 2ff661c179..1d37b2f05d 100644
--- a/gdb/x86-bsd-nat.c
+++ b/gdb/x86-bsd-nat.c
@@ -51,11 +51,16 @@ x86bsd_mourn_inferior (struct target_ops *ops)
super_mourn_inferior (ops);
}
-/* Not all versions of FreeBSD/i386 that support the debug registers
- have this macro. */
+/* 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. */
#ifndef DBREG_DRX
+#ifdef __NetBSD__
+#define DBREG_DRX(d, x) ((d)->dr[x])
+#else
#define DBREG_DRX(d, x) ((&d->dr0)[x])
#endif
+#endif
static unsigned long
x86bsd_dr_get (ptid_t ptid, int regnum)
--
2.11.0
More information about the Gdb-patches
mailing list