Linux x86 low-level debug register code synchronization
This commit makes several small changes to the low-level debug register code for Linux x86, making the code in the GDB and gdbserver implementations identical. gdb/ChangeLog: * x86-linux-nat.c (x86_linux_dr_set_addr): Update assertion. (x86_linux_new_thread): Rename argument. gdb/gdbserver/ChangeLog: * linux-x86-low.c (x86_linux_dr_get): Add assertion. Use perror_with_name. Pass string through gettext. (x86_linux_dr_set): Likewise.
This commit is contained in:
parent
d33472adfc
commit
5dfe6ca8a8
@ -1,3 +1,8 @@
|
|||||||
|
2015-03-24 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
|
* x86-linux-nat.c (x86_linux_dr_set_addr): Update assertion.
|
||||||
|
(x86_linux_new_thread): Rename argument.
|
||||||
|
|
||||||
2015-03-24 Gary Benson <gbenson@redhat.com>
|
2015-03-24 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
* nat/x86-linux.h: New file.
|
* nat/x86-linux.h: New file.
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2015-03-24 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
|
* linux-x86-low.c (x86_linux_dr_get): Add assertion.
|
||||||
|
Use perror_with_name. Pass string through gettext.
|
||||||
|
(x86_linux_dr_set): Likewise.
|
||||||
|
|
||||||
2015-03-24 Gary Benson <gbenson@redhat.com>
|
2015-03-24 Gary Benson <gbenson@redhat.com>
|
||||||
|
|
||||||
* linux-x86-low.c (x86_dr_low_set_addr): Rename to...
|
* linux-x86-low.c (x86_dr_low_set_addr): Rename to...
|
||||||
|
@ -544,12 +544,13 @@ x86_linux_dr_get (ptid_t ptid, int regnum)
|
|||||||
int tid;
|
int tid;
|
||||||
unsigned long value;
|
unsigned long value;
|
||||||
|
|
||||||
|
gdb_assert (ptid_lwp_p (ptid));
|
||||||
tid = ptid_get_lwp (ptid);
|
tid = ptid_get_lwp (ptid);
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
value = ptrace (PTRACE_PEEKUSER, tid, u_debugreg_offset (regnum), 0);
|
value = ptrace (PTRACE_PEEKUSER, tid, u_debugreg_offset (regnum), 0);
|
||||||
if (errno != 0)
|
if (errno != 0)
|
||||||
error ("Couldn't read debug register");
|
perror_with_name (_("Couldn't read debug register"));
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
@ -559,12 +560,13 @@ x86_linux_dr_set (ptid_t ptid, int regnum, unsigned long value)
|
|||||||
{
|
{
|
||||||
int tid;
|
int tid;
|
||||||
|
|
||||||
|
gdb_assert (ptid_lwp_p (ptid));
|
||||||
tid = ptid_get_lwp (ptid);
|
tid = ptid_get_lwp (ptid);
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
ptrace (PTRACE_POKEUSER, tid, u_debugreg_offset (regnum), value);
|
ptrace (PTRACE_POKEUSER, tid, u_debugreg_offset (regnum), value);
|
||||||
if (errno != 0)
|
if (errno != 0)
|
||||||
error ("Couldn't write debug register");
|
perror_with_name (_("Couldn't write debug register"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -165,7 +165,7 @@ x86_linux_dr_set_addr (int regnum, CORE_ADDR addr)
|
|||||||
{
|
{
|
||||||
ptid_t pid_ptid = pid_to_ptid (ptid_get_pid (current_lwp_ptid ()));
|
ptid_t pid_ptid = pid_to_ptid (ptid_get_pid (current_lwp_ptid ()));
|
||||||
|
|
||||||
gdb_assert (regnum >= 0 && regnum <= DR_LASTADDR - DR_FIRSTADDR);
|
gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
|
||||||
|
|
||||||
iterate_over_lwps (pid_ptid, update_debug_registers_callback, NULL);
|
iterate_over_lwps (pid_ptid, update_debug_registers_callback, NULL);
|
||||||
}
|
}
|
||||||
@ -223,9 +223,9 @@ x86_linux_prepare_to_resume (struct lwp_info *lwp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
x86_linux_new_thread (struct lwp_info *lp)
|
x86_linux_new_thread (struct lwp_info *lwp)
|
||||||
{
|
{
|
||||||
lwp_set_debug_registers_changed (lp, 1);
|
lwp_set_debug_registers_changed (lwp, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user