Enable support for x86 debug registers on NetBSD.
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. In addition, add the x86-nat.o and x86-dregs.o object files to the native NetBSD x86 build targets. gdb/ChangeLog: * configure.nat: Add "x86-nat.o x86-dregs.o" for NetBSD/amd64 and NetBSD/i386. * x86-bsd-nat.c [!DBREG_DRX && __NetBSD__]: Define DBREG_DRX.
This commit is contained in:
parent
f7efc967ba
commit
a379bfd00e
|
@ -1,3 +1,9 @@
|
|||
2017-09-04 John Baldwin <jhb@FreeBSD.org>
|
||||
|
||||
* configure.nat: Add "x86-nat.o x86-dregs.o" for NetBSD/amd64 and
|
||||
NetBSD/i386.
|
||||
* x86-bsd-nat.c [!DBREG_DRX && __NetBSD__]: Define DBREG_DRX.
|
||||
|
||||
2017-09-04 John Baldwin <jhb@FreeBSD.org>
|
||||
|
||||
* bsd-kvm.o: Make <sys/user.h> conditional on HAVE_SYS_USER_H.
|
||||
|
|
|
@ -338,8 +338,8 @@ case ${gdb_host} in
|
|||
case ${gdb_host_cpu} in
|
||||
i386)
|
||||
# Host: NetBSD/amd64
|
||||
NATDEPFILES="${NATDEPFILES} nbsd-nat.o amd64-nat.o \
|
||||
x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o"
|
||||
NATDEPFILES="${NATDEPFILES} nbsd-nat.o amd64-nat.o x86-nat.o \
|
||||
x86-dregs.o x86-bsd-nat.o amd64-bsd-nat.o amd64-nbsd-nat.o"
|
||||
;;
|
||||
sparc)
|
||||
# Host: NetBSD/sparc64
|
||||
|
@ -358,8 +358,8 @@ case ${gdb_host} in
|
|||
;;
|
||||
i386)
|
||||
# Host: NetBSD/i386 ELF
|
||||
NATDEPFILES="${NATDEPFILES} nbsd-nat.o x86-bsd-nat.o \
|
||||
i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o"
|
||||
NATDEPFILES="${NATDEPFILES} nbsd-nat.o x86-nat.o x86-dregs.o \
|
||||
x86-bsd-nat.o i386-bsd-nat.o i386-nbsd-nat.o bsd-kvm.o"
|
||||
LOADLIBES='-lkvm'
|
||||
;;
|
||||
m68k)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue