diff options
author | John Baldwin <jhb@FreeBSD.org> | 2016-06-27 17:44:58 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2016-07-01 07:01:05 -0700 |
commit | 5077bfff905136e9d9a8fdf0886f6217887622ad (patch) | |
tree | f4718adea158b0093fee7a20c004f9d74eb87431 | |
parent | a3405d124e1388b613a35af49f19f0cc1b8d959d (diff) | |
download | binutils-5077bfff905136e9d9a8fdf0886f6217887622ad.zip binutils-5077bfff905136e9d9a8fdf0886f6217887622ad.tar.gz binutils-5077bfff905136e9d9a8fdf0886f6217887622ad.tar.bz2 |
Set debug registers on all threads belonging to the current inferior.
gdb/ChangeLog:
* x86bsd-nat.c: Include 'gdbthread.h'.
(x86bsd_dr_set): Set debug registers on all threads belonging to
the current inferior.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/x86bsd-nat.c | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0089d68..e4f7e3a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2016-07-01 John Baldwin <jhb@FreeBSD.org> + * x86bsd-nat.c: Include 'gdbthread.h'. + (x86bsd_dr_set): Set debug registers on all threads belonging to + the current inferior. + +2016-07-01 John Baldwin <jhb@FreeBSD.org> + * Makefile.in [HFILES_NO_SRCDIR]: Replace 'amd64bsd-nat.h' with 'x86bsd-nat.h'. * amd64bsd-nat.c: Include 'x86bsd-nat.h' instead of diff --git a/gdb/x86bsd-nat.c b/gdb/x86bsd-nat.c index 0c56848..bde25ab 100644 --- a/gdb/x86bsd-nat.c +++ b/gdb/x86bsd-nat.c @@ -19,6 +19,7 @@ #include "defs.h" #include "inferior.h" +#include "gdbthread.h" /* We include <signal.h> to make sure `struct fxsave64' is defined on NetBSD, since NetBSD's <machine/reg.h> needs it. */ @@ -71,6 +72,7 @@ x86bsd_dr_get (ptid_t ptid, int regnum) static void x86bsd_dr_set (int regnum, unsigned long value) { + struct thread_info *thread; struct dbreg dbregs; if (ptrace (PT_GETDBREGS, get_ptrace_pid (inferior_ptid), @@ -84,9 +86,13 @@ x86bsd_dr_set (int regnum, unsigned long value) DBREG_DRX ((&dbregs), regnum) = value; - if (ptrace (PT_SETDBREGS, get_ptrace_pid (inferior_ptid), - (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) - perror_with_name (_("Couldn't write debug registers")); + ALL_NON_EXITED_THREADS (thread) + if (thread->inf == current_inferior ()) + { + if (ptrace (PT_SETDBREGS, get_ptrace_pid (thread->ptid), + (PTRACE_TYPE_ARG3) &dbregs, 0) == -1) + perror_with_name (_("Couldn't write debug registers")); + } } static void |